Jpa 如何使用CriteriaUpdate设置true?
我有一个具有Jpa 如何使用CriteriaUpdate设置true?,jpa,criteria-api,Jpa,Criteria Api,我有一个具有布尔属性的实体 class MyEntity { @Basic(optional = false) @Column(name = "FLAG") private boolean flag; } 如何使用true对标志字段执行批量更新设置 // UPDATE MyEntity AS e SET e.flag = TRUE final CriteriaBuilder builder = entityManager.getCriteriaBuilder(); fi
布尔属性的实体
class MyEntity {
@Basic(optional = false)
@Column(name = "FLAG")
private boolean flag;
}
如何使用true
对标志
字段执行批量更新设置
// UPDATE MyEntity AS e SET e.flag = TRUE
final CriteriaBuilder builder = entityManager.getCriteriaBuilder();
final CriteriaUpdate<MyEntity> update
= builder.createCriteriaUpdate(MyEntity.class);
final Root<MyEntity> root = criteriaUpdate.from(MyEntity.class);
update.set(root.get(ProfileClue_.flag), ???);
//将MyEntity更新为e SET e.flag=TRUE
最终CriteriaBuilder=entityManager.getCriteriaBuilder();
最终标准更新
=builder.createCriteriaUpdate(MyEntity.class);
最终根=criteriaUpdate.from(MyEntity.class);
update.set(root.get(ProfileClue.flag),??);
使用纯JPA,我会做如下事情
final CriteriaBuilder builder = entityManager.getCriteriaBuilder();
final CriteriaUpdate<MyEntity> update = builder.createCriteriaUpdate(MyEntity.class);
final Root<MyEntity> root = criteriaUpdate.from(MyEntity.class);
Expression trueLiteral = builder.literal(Boolean.TRUE);
update.set(root.get(ProfileClue_.flag), trueLiteral);
final CriteriaBuilder=entityManager.getCriteriaBuilder();
final CriteriaUpdate=builder.createCriteriaUpdate(MyEntity.class);
最终根=criteriaUpdate.from(MyEntity.class);
表达式trueLiteral=builder.literal(Boolean.TRUE);
update.set(root.get(ProfileClue.flag),trueLiteral);
使用比JPA规范要求(由DataNucleus JPA支持,可能还有其他支持)更高级的JPA提供程序,可以将其设置为参数
final CriteriaBuilder builder = entityManager.getCriteriaBuilder();
final CriteriaUpdate<MyEntity> update = builder.createCriteriaUpdate(MyEntity.class);
final Root<MyEntity> root = criteriaUpdate.from(MyEntity.class);
ParameterExpression<String> param = builder.parameter(Boolean.class, "myParam");
update.set(root.get(ProfileClue_.flag), param);
final CriteriaBuilder=entityManager.getCriteriaBuilder();
final CriteriaUpdate=builder.createCriteriaUpdate(MyEntity.class);
最终根=criteriaUpdate.from(MyEntity.class);
ParameterExpression param=builder.parameter(Boolean.class,“myParam”);
update.set(root.get(ProfileClue.flag),param);