@CreatedDate字段,弹簧数据mongodb更新,弹簧数据休息

时间:2017-04-07 14:47:12

标签: spring-data-mongodb spring-data-rest

我正在尝试使用spring-data-rest spring-data-mongo,而且很多东西都开箱即用,包括支持eTag字段。 @EnableMongoAuditing注释非常有效,在创建文档时,@CreatedDate@LastModifiedDate字段已设置。

问题是在更新期间@CreatedDate字段被设置为null。我发现了一个未解决的问题Mongo Auditing:@CreatedDate field gets set to null on updates with Spring Data Rest以及使用@JsonIgnore注释的建议解决方法,这对我不起作用。

几年前还有一个similar question没有解决方案。

我正在使用spring-data-mongo的版本1.10.1RELEASE和spring-data-rest的2.6.1Release

这个问题有解决方案吗?

1 个答案:

答案 0 :(得分:0)

创建日期仅适用于不可变实体(您不会更新)

如果实体是可更新的,则只想使用最后修改

对于任何其他情况,可能有意义使用一些历史试听日志..

  @Entity
  // ...
  public class MyEntity {
    // ... 
    @CreatedDate
    private LocalDateTime createdAt; // modifiedAt

    @PreUpdate
    public void fixSpringDataRestNullDate() {
      createdAt = LocalDateTime.now();
    }
  }