【问题标题】:Spring Data Couchbase @CreatedDate not workingSpring Data Couchbase @CreatedDate 不起作用
【发布时间】:2017-08-10 09:52:27
【问题描述】:

我正在使用 Spring Boot 和 Spring Data Couchbase。 我在 Movie 文档中添加了两个带有 @CreatedDate@LastModifiedDate 注释的 createdDatelastModifiedDate 字段。

lastModifiedDate 效果很好,但 createdDate 始终为空。

@RequiredArgsConstructor
@NoArgsConstructor
@ToString
@EqualsAndHashCode
@Document
public class Movie {

    @Id
    @NonNull
    @Getter
    private String id;

    @Getter
    @Setter
    @NonNull
    private String title;

    @Getter
    @LastModifiedDate
    private Date lastModifiedDate;

    @Getter
    @CreatedDate
    private Date createdDate;
}

我还为@EnableCouchbaseAuditing添加了配置:

@Configuration
@EnableCouchbaseAuditing
public class AuditConfiguration {
}

电影资料库:

@N1qlPrimaryIndexed
@ViewIndexed(designDoc = "movie")
public interface MovieRepository extends CouchbaseRepository<Movie, String> {

    Collection<Movie> findByTitle(String title);

    Collection<Movie> findByTitleLike(String title);

    Collection<Movie> findByTitleStartingWith(String title);

}

application.yml 供参考:

spring:
  couchbase:
    bootstrap-hosts: localhost
    bucket:
      name: movie
  data:
    couchbase:
      auto-index: true

【问题讨论】:

    标签: java spring-boot couchbase spring-data-couchbase


    【解决方案1】:

    documentation中所说,为了区分创建和更新,spring-data-couchbase在实体类中需要@Version注解属性

    【讨论】:

      【解决方案2】:

      如果有人登陆这里...我遇到了createdDate 没有被填充的问题,即使我关注了spring-data-couchbase documentation。我的文档遵循creating immutable objectsAuditing 的过程。原因是用@CreatedDate 注释的字段是final(我使用了lombok @Value)。我必须使它成为非最终版本(@NonFinal 使用 Lombok)才能最终工作。

      【讨论】:

        猜你喜欢
        • 2013-12-27
        • 2016-06-05
        • 1970-01-01
        • 2021-07-17
        • 2018-04-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多