我有一个非常大的代码。我遇到了一个问题,在代码的最开始,null 被插入到 arraylist 中,custlist
即 custlist 看起来像 [null]。在多行代码之后,我在构建 Predicate 的地方进行了代码更改,custlist
如下所示:
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Customer> q = cb.createQuery(Customer.class);
Root<Customer> root = q.from(Customer.class);
q.select(root);
if (!CollectionUtils.isEmpty(custlist)){
Predicate predicate1 =root.get("custid").in(custlist);
}
q.where(predicate1);
TypedQuery<Customer> tq = em.createQuery(q);
List<Customer> allcust= tq.getResultList();
所以第一个检查通过了,(custlist != null && !custlist.isEmpty())
并且谓词被建立了。这在执行最终查询时给了我错误。我的问题是 - 无论如何我可以确保仅在 custlist 没有空值时创建谓词。我的问题是 - 就像 Collectionutils.isEmpty() 同时检查空值和空值一样,如果有人可以帮助我使用一些也可以检查null inside arraylist
的 API。