在JPA实体上实施“接触”?

| 在我们的基本实体类(所有实体都派生自)中,除其他外,我们有2种方法。一个用
@PrePersist
注释,它基本上只设置ѭ1the,而另一个用
@PreUpdate
注释,它设定
dateUpdated
字段。 这很完美,因为我们不希望在创建时设置“ 3”字段。作为设计的一部分,我们还使这两种方法成为“ 5”,以便其他开发人员不会去明确地弄乱这两个日期(也没有设置方法)。 同样,我们可以通过在实际实体上定义方法并在其上加上ѭ0an来轻松扩展任何实体以在创建时设置
dateUpdated
字段,因此本部分将进行介绍。 现在,我目前的问题是,在某些情况下,我们想显式更新实体上的“ 3”字段,而实体上的任何数据都没有变化(基本上是“ 9”)。是否有一种优雅的方法?我真的不想实现一种方法来更改其字段之一,然后再将其更改回。而且,我们希望在没有用于这些字段的设置方法的情况下保留实体。 谢谢!     
已邀请:
        您是否尝试过仅更改
dateUpdated
字段值?我猜这应该使实体修改为Hibernate,并且Hibernate将调用
@PreUpdate
方法,该方法会将
dateUpdated
字段设置回当前时间:
public void touch() {
    this.dateUpdated = -1;
}
    
        使用@Version注释您的dateUpdated字段,删除preUpdate回调并在提交事务之前使用em.lock(entity,LockModeType.WRITE)。提醒需要管理实体,以便强制更新版本列     

要回复问题请先登录注册