Spring Data JPA使用QueryDsl谓词聚合函数

时间:2014-01-28 16:02:13

标签: java spring hibernate spring-data querydsl

我有一个扩展PagingAndSortingRepositoryQueryDslPredicateExecutor的Spring Data Jpa存储库。

它指向一个包含我想用聚合函数详细说明的元素的表。我想用m.field1获取每个MIN m.field2

所以这是我在@Query方法注释中的查询:

select new x.xx.MyClass(m.field1, MIN(m.field2))
from MyClass m
group by m.field1, m.field2

这里是我的存储库接口方法:

Page<MyClass> findMyClass(Predicate predicate, Pageable pageable);

它很有效,即使这个查询可能很糟糕,也有更好的方法。

但是当我尝试使用谓词时,即使是空的谓词,我也会得到:

org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 1; 
    nested exception is java.lang.IllegalArgumentException: org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. 
    Remember that ordinal parameters are 1-based! Position: 1

有可能让这个工作,或者我必须采用其他实现吗?

0 个答案:

没有答案