本文整理汇总了Java中javax.persistence.criteria.CriteriaBuilder.createCriteriaUpdate方法的典型用法代码示例。如果您正苦于以下问题:Java CriteriaBuilder.createCriteriaUpdate方法的具体用法?Java CriteriaBuilder.createCriteriaUpdate怎么用?Java CriteriaBuilder.createCriteriaUpdate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类javax.persistence.criteria.CriteriaBuilder
的用法示例。
在下文中一共展示了CriteriaBuilder.createCriteriaUpdate方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: update
import javax.persistence.criteria.CriteriaBuilder; //导入方法依赖的package包/类
@Override
public int update(T entity) {
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaUpdate<T> criteriaUpdate = builder.createCriteriaUpdate(entityClass);
Root<T> root = criteriaUpdate.from(entityClass);
Field[] fields = entityClass.getDeclaredFields();
Object primaryV = null;
String primaryKey = this.getPrimaryKey();
for (Field field : fields) {
ReflectionUtils.makeAccessible(field);
Object fieldV = ReflectionUtils.getField(field, entity);
if (fieldV == null)
continue;
if (primaryKey.equals(field.getName())) {// 主键不参与修改
primaryV = fieldV;
} else {
criteriaUpdate.set(root.get(field.getName()), fieldV);
}
}
criteriaUpdate.where(builder.equal(root.get(primaryKey), primaryV));
Query query = entityManager.createQuery(criteriaUpdate);
return query.executeUpdate();
}
示例2: updateTask
import javax.persistence.criteria.CriteriaBuilder; //导入方法依赖的package包/类
public void updateTask(final ToDoList pToDoList) {
final CriteriaBuilder lCriteriaBuilder = entityManager.getCriteriaBuilder();
//Creation de la requête d'update
final CriteriaUpdate<ToDoList> lCriteriaUpdate = lCriteriaBuilder.createCriteriaUpdate(ToDoList.class);
final Root<ToDoList> lRoot = lCriteriaUpdate.from(ToDoList.class);
final Path<ToDoList> lPath = lRoot.get("id");
//On utilise la variable pToDoList transmise en parametre de la methode
final Expression<Boolean> lExpression = lCriteriaBuilder.equal(lPath, pToDoList.getId());
lCriteriaUpdate.where(lExpression);
lCriteriaUpdate.set("libelle", pToDoList.getLibelle());
final Query lQuery = entityManager.createQuery(lCriteriaUpdate);
final int lRowCount = lQuery.executeUpdate();
//Si la requête modifie un nombre d'occurrences différent de 1 > erreur
//Sinon update fait.
if (lRowCount != 1) {
final org.hibernate.Query lHQuery = lQuery.unwrap(org.hibernate.Query.class);
final String lSql = lHQuery.getQueryString();
throw new RuntimeException("Nombre d'occurences (" + lRowCount +
") modifiés différent de 1 pour " + lSql);
}
}