Spring Data JPA聚合函数与QueryDsl谓词

gip*_*ani 5 java spring hibernate querydsl spring-data

我有一个Spring Data Jpa存储库,扩展了PagingAndSortingRepositoryQueryDslPredicateExecutor

它指向一个表,该表包含我想用聚合函数详细说明的元素。我想每一次读取m.field1MIN m.field2

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

select new x.xx.MyClass(m.field1, MIN(m.field2))
from MyClass m
group by m.field1, m.field2
Run Code Online (Sandbox Code Playgroud)

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

Page<MyClass> findMyClass(Predicate predicate, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)

即使这个查询很烂,并且有更好的方法也可以,它仍然有效。

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

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
Run Code Online (Sandbox Code Playgroud)

那么有可能使此工作正常进行,还是我不得不采用另一种实现方式?