jpa写and条件下存在or条件
在JPA中,可以使用CriteriaBuilder和CriteriaQuery来编写AND条件下存在OR条件的查询。下面是一个示例代码:
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Entity> criteriaQuery = criteriaBuilder.createQuery(Entity.class);
Root<Entity> root = criteriaQuery.from(Entity.class);
Predicate predicate1 = criteriaBuilder.and(
criteriaBuilder.equal(root.get("field1"), value1),
criteriaBuilder.equal(root.get("field2"), value2)
);
Predicate predicate2 = criteriaBuilder.or(
criteriaBuilder.equal(root.get("field3"), value3),
criteriaBuilder.equal(root.get("field4"), value4)
);
criteriaQuery.where(criteriaBuilder.and(predicate1, predicate2));
List<Entity> resultList = entityManager.createQuery(criteriaQuery).getResultList();
在上面的代码中,predicate1表示AND条件,它由两个等式条件组成。predicate2表示OR条件,它由两个等式条件组成。通过criteriaBuilder.and将两个等式条件合并为AND条件,然后通过criteriaBuilder.or将两个等式条件合并为OR条件。最后,通过criteriaQuery.where将AND条件和OR条件组合起来,并执行查询获取结果
原文地址: https://www.cveoy.top/t/topic/h7fE 著作权归作者所有。请勿转载和采集!