【问题标题】:Play framework 2 and automatically adding an add_date to an ebeans item播放框架 2 并自动将 add_date 添加到 ebeans 项目
【发布时间】:2017-05-26 13:43:13
【问题描述】:

我对 ebeans 有一点困难。

我曾经使用以下代码创建项目,填充 addDate:

@MappedSuperclass
public abstract class GenericModel extends Model {

    @Id
    protected Long id;

    @UpdatedTimestamp
    @Version
    private Date lastUpdate;

    @CreatedTimestamp
    protected Date addDate;

    public Long getId(){
        return id;
    }

    public Date getLastUpdate(){
        return lastUpdate;
    }

    public Date getAddDate(){
        return addDate;
    }

} 

但是,由于我需要与离线设备同步数据,我将其更改为:

@MappedSuperclass
public abstract class GenericModel extends Model {

    @Id
    protected Long id;

    @UpdatedTimestamp
    @Version
    private Date lastUpdate;

    protected Date addDate;

    public Long getId(){
        return id;
    }

    public Date getLastUpdate(){
        return lastUpdate;
    }

    public Date getAddDate(){
        return addDate;
    }

    @WhenCreated
    private void addCreateTimestamp(){
        if(this.addDate == null) this.addDate = new Date();
    }

} 

但这不起作用,因为插入时addDate不能为null的异常。

是否有另一种填充 addDate 的方法未设置(为了同步,我有时需要手动设置 addDate,使其与主节点相同)。

[编辑:] 这个问题似乎没有出现在我使用 men db 的开发系统上,但是在使用 MySql 部署时

【问题讨论】:

    标签: java playframework-2.0 ebean


    【解决方案1】:

    @WhenCreated 只是@CreatedTimestamp 的别名。您期望将此注释放在addCreateTimestamp() 方法之前。在您的情况下永远不会执行此方法,因此永远不会设置 addDate

    试试这个:

    @MappedSuperclass
    public abstract class GenericModel extends Model {
        // ...
        protected Date addDate;
        // ...
    
        @Override
        public void save() {
            addCreateTimestamp();
            super.save();
        }
    
        private void addCreateTimestamp(){
            if(this.addDate == null) this.addDate = new Date();
        }
    
        // ... 
    

    【讨论】:

      猜你喜欢
      • 2015-09-16
      • 2012-05-19
      • 2016-11-19
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多