我正在使用带有弹簧靴的jpa,我是新手。我已经覆盖toPredicate()
了规范的谓词。以下是我的代码:-
public Predicate toPredicate(Root<ExportOrderInfo> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder builder) {
if(beginningOfQuarter != null && endOfQuarter != null){
criteriaQuery.distinct(true);
root.fetch("orderDetail", JoinType.LEFT);
root.fetch("orderDownload", JoinType.INNER);
return builder.and(builder.equal(root.<String>get(randomColumnName), valueToSearchFor) , builder.isNotNull(root.get("optyId")));
}else{
criteriaQuery.distinct(true);
root.fetch("orderDetail", JoinType.LEFT);
root.fetch("orderDownload", JoinType.LEFT);
return builder.and(builder.equal(root.<String>get(randomColumnName), valueToSearchFor));
}
}
当我使用两个根时。获取它的覆盖前一个。请帮我解决这个问题。