如何解决带有IN和其他AND子句的JPA Criteria API
我想使用Criteria API建立类似sql的查询,但我不知道如何正确执行。
Select * from Obj o where o.status =: status and vesselType in (: vesselTypes) and companyName in (: companyNames) and destinationPort in (: destinationPorts) and date between etd1 and etd2
public List<Obj> getReportDataCreteria(String status,List<String> vesselTypes,List<String> destinationPorts,List<String> companyNames,Date etd1,Date etd2){
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Obj> criteriaQuery = criteriaBuilder.createquery(Obj.class);
Root<Obj> brRoot = criteriaQuery.from(Obj.class);
Predicate statusPredicate = criteriaBuilder.equal(brRoot.get("status"),"OK");
Predicate etd1Predicate = criteriaBuilder.greaterThanorEqualTo(brRoot.get("etd"),etd1);
Predicate etd2Predicate = criteriaBuilder.lessthanorEqualTo(brRoot.get("etd"),etd2);
// Predicate vesselTypesPredicate = criteriaBuilder.in(brRoot.get("vesselType"),vesselTypes);
criteriaQuery.select(brRoot);
criteriaQuery.where(statusPredicate);
...
...
return result;
}
我该怎么做并完成我的功能
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。