1

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?

4

0 に答える 0