Я отображаю результат следующего JPQL
-Query непосредственно на SpecialCustomDto
объект вместо используемого javax.persistency
объекта объекта MyEntity
. Но я не знаю, как получить доступ к COUNT(DISTINCT e.attributeB)
, который будет сопоставлен с SpecialCustomDto
.
Это запрос.
@Repository
public interface MyEntityRepository extends JpaRepository<MyEntity, Long> {
@Query("SELECT new com.test.SpecialCustomDto(e.attributeA, COUNT(DISTINCT e.attributeB)) as specialCustomDto "
+ "FROM MyEntity e WHERE 5 = specialCustomDto.count GROUP BY e.attributeA")
List<SpecialCustomDto> getSpecialCustomDtos();
}
Как только я запускаю приложение spring-boot
, Hibernate выдает мне следующую ошибку:
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: as near line 1, column...
Я не знаю, как получить доступ к агрегированному элементу COUNT(DISTINCT e.attributeB)
недавно созданного SpecialCustomDto
. Без дополнительного пункта WHERE
отображение работает, как и ожидалось.