我有以下基础实体类,它由2个JPA实体类扩展。
@MappedSuperclass
public class BaseEntity implements Serializable {
...
...
@PrePersist
protected void onCreate() {
this.modifiedOn = new Date();
}
@PreUpdate
protected void onUpdate() {
this.modifiedOn = new Date();
}
}
现在,如果我使用实体管理器使用以下本机查询调用更新几列。它会调用@PreUpdate
吗?
Query query = super.getEntityManager(Constant.PSUNIT).createNativeQuery("UPDATE CUSTOMER SET TYPE = 'XYZ' WHERE SOURCE = 'ABC'");
query.executeUpdate();
@Entity
@Table(name = "CUSTOMER")
public class Customer extends CustomerSuper {
// customer related fields. and getting setter with annotations.
...
...
...
}
@MappedSuperclass
public class CustomerSuper extends BaseEntity implements Serializable {
答案 0 :(得分:0)
如果我们使用实体管理器为本机查询触发更新,看起来它不会调用preUpdate。
可能背后的原因是创建查询的工作由我们的代码而不是hibernate管理。