使用查询dsl谓词选择列的最大字段

时间:2014-02-12 09:11:38

标签: java spring predicate querydsl predicates

我是新用来查询dsl.Im使用Spring存储库来获取结果集。有一种情况我必须得到一个列的最大值并将字段输入到一个实体。我的谓词代码如下。我得到错误一次我运行此代码。

public static  Predicate getMaximum(){
 QUserDetails details = QUserDetails.userDetails;
 return details.id.eq(details.id.max());
 }

这就是我使用spring jpa

获取结果集的方法
public UserDetails findByCustomerId(Predicate predicate);

这是我得到的错误:

org.springframework.data.mapping.PropertyReferenceException:找不到类型为com.example.entity.UserDetails的属性find。任何人都可以帮我实现我想要的东西。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

QueryDSL email group,显然你要做的就是选择最大ID:

from(entity).singleResult(entity.id.max())

所以它是

JPAQuery jpaQuery = new JPAQuery(entityManager);
QEntity qEntity = QEntity.entity;
Long maxId = query.from(qEntity).singleResult(qEntity.id.max());