JpaRepository
クラスごとに複数のフィールドを返したい場合はどうすればよいですか。
@Query("select u.age, count(u.id) from User u group by u.age")
List<Map<String, Object>> getAgeHistogram();
1つの代わりに?可能ですか?JPQL BNFによると、それは不可能です:
select_expression ::=
single_valued_path_expression |
aggregate_expression |
identification_variable |
OBJECT(identification_variable) |
constructor_expression
DTOを使用constructor_expression
しない限り(このコードはテストしません):
@Query("select new org.dao.dto.AgeHistogram(u.age, count(u.id)) from User u"
+" group by u.age")
org.dao.dto.AgeHistogram getAgeHistogram();
更新この回答はいくつかのテクニックを示しています: How to get many object types returned in Hibernate Is it possible in JPA?