@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();
}
BaseRepositoryImpl.java 文件源码
java
阅读 37
收藏 0
点赞 0
评论 0
项目:spring-cloud-samples
作者:
评论列表
文章目录