7

JPQL では、次のようなコンストラクタ式を使用してエンティティのサブセットを要求できます。

SELECT NEW example.EmployeeDetails(e.name, e.salary, e.department.name) FROM Employee e

タイプ EmployeeDetails のオブジェクトのリストを返します

または、次のような投影選択を使用します

SELECT e.name, e.salary FROM Employee e

Object[] result結果[0]がe.nameであり、結果[1]がe.salaryである場所を返します

エンティティのサブセットを含む Map を返すように JPA を取得する方法はありますか?たとえば、その List<Map<String,Object>> resultようなものを返すresult.get(0).get("e.name")ことができる JPQL クエリがありますかe.nameresult.get(0).get('e.salary')e.salary

JPQLでできないならHQLでできる?

4

1 に答える 1

7

JPAは、複合選択に対して限られた量の戻り型(配​​列、タプル、および構成)を提供しますが、Hibernateは、Mapを含むselect句に対してはるかに多くの戻り型を提供します。

SELECT NEW map(e.name, e.salary, e.department.name) FROM Employee e

このHQLクエリは、Mapfromエイリアスから選択された値を返します。

于 2012-08-23T08:34:02.123 に答える