【发布时间】:2020-07-28 08:37:39
【问题描述】:
我正在使用 JPA/Hibernate。
我正在进行批量更新:
代码片段:
@PersistenceContext
private EntityManage entityManager;
...
private int update(StudentEntity studentEntity){
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaUpdate<StudentEntity > criteria = builder.createCriteriaUpdate(StudentEntity.class);
Root<StudentEntity> root = criteria.form(StudentEntity.class)
setFields(criteria, root, studentEntity)
criteria.where(builder.equal(root.get("studentId"), studentEntity.getStudentId()));
return entityManager.createQuery(criteria).executeUpdate();
}
private setFields(CriteriaUpdate<StudentEntity> criteria, Root<StudentEntity> root,StudentEntity studentEntity){
criteria.set(root.get("studentName"),studentEntity.getStudentName());
....
}
在执行上述代码时@PostUpdate钩子没有被调用,为什么?
@PostUpdate
private update (StudentEntity studentEntity){
System.out.println("@PostUpdate called.");
}
【问题讨论】:
标签: java spring-boot jpa spring-data-jpa spring-data