如何构建Criteria Query以更新多个项目的状态?
final CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaUpdate<Item> query = builder.createCriteriaUpdate(Item.class);
Root<Item> root = query.from(Item.class);
List<Predicate> predicates = new ArrayList<Predicate>();
for(Long id : itemIds)
{
predicates.add(builder.or(builder.equal(root.get(Item_.id), id)));
}
query.set(root.get(Item_.status), status)
.where(predicates.toArray(new Predicate[predicates.size()]));
entityManager.createQuery(query).executeUpdate();
以上查询仅在itemIds时有效。 size()== 1.如果itemIds.size()&gt; 2然后实体将不会更新。任何人都可以帮助构建OR表达式的正确谓词。
提前感谢!