0

我正在使用 JPA 的(实体管理器)标准查询从数据库中获取结果。我需要在标准之间放置“OR”子句。

我的代码如下:

List<Predicate> criteraList = new ArrayList<Predicate>();
if(user.getEid() != null){
    criteraList.add(criteriaUserCountry.like((Expression) userList.get("userCountryPK").get("user").get("eid"), "%" + user.getEid() + "%" ));
}
if(user.getFirstName() != null) {
    criteraList.add(criteriaUserCountry.like((Expression) userList.get("userCountryPK").get("user").get("firstName"), "%" + user.getFirstName() + "%" ));
}
cq.where(criteraList.toArray(new Predicate[]{}));
TypedQuery<UserCountry> query = entityManager.createQuery(cq);

在sql查询方面,上面的代码在不同的条件之间插入了'AND'。如何使用 Entity Manager 的标准来实现“OR”子句。

4

1 回答 1

1

使用OR谓词

请注意,由于它具有可变参数的重载,因此您可以将 a 传递Predicate[]给它。

于 2013-08-19T09:33:37.460 回答