【问题标题】:Ebean update modifies field with @CreateTimestamp annotationEbean 更新使用 @CreateTimestamp 注释修改字段
【发布时间】:2013-07-30 06:39:43
【问题描述】:

我有一个抽象类,我的所有持久对象都从该类扩展,见下文。最初保存对象时会填充 creationDate 和 modifiedDate 字段,我可以在表中看到日期。我遇到的问题是,当我更新同一个对象时,creationDate 和 modifiedDate 也都更新了,我想要的只是要更新的 modifiedDate 字段。

我正在使用带有 ebean 的 play 2.1。

抽象类 ...

@MappedSuperclass
public abstract class BasePersistableEntity extends Model  {
    @Temporal(TemporalType.TIMESTAMP)
    @Formats.DateTime(pattern="yyyy-MM-dd HH:mm:ss")
    @CreatedTimestamp
    protected Date creationDate;

    @Temporal(TemporalType.TIMESTAMP)
    @Formats.DateTime(pattern="yyyy-MM-dd HH:mm:ss")
    @UpdatedTimestamp
    @Version
    protected Date modifiedDate;

    public Date getCreationDate(){
        return creationDate;
    }

    public void setCreationDate(Date date){
        creationDate = date;
    }

    public Date getModifiedDate(){
        return modifiedDate;
    }

    public void setModifiedDate(Date date){
        modifiedDate = date;
    }
}

谢谢。

【问题讨论】:

    标签: playframework-2.1 ebean


    【解决方案1】:
    @Temporal(TemporalType.TIMESTAMP)
    @Formats.DateTime(pattern="yyyy-MM-dd HH:mm:ss")
    @CreatedTimestamp
    @Column(updatable=false)
    protected Date creationDate;
    

    只需将 @Column(updatable=false) 注释添加到 creationDate 字段

    【讨论】:

      猜你喜欢
      • 2014-08-13
      • 1970-01-01
      • 2018-12-28
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多