Spring数据mongodb审计无法正常工作..(Java配置)

我目前正在使用Spring数据mongodb 1.6.0-RELEASE,我知道它有审计function。 我把@EnableMongoAuditing注释放在我的配置类之上。 我的豆子在下面:

 @Document public class MyBean{ @Id private AnotherCustomBean anotherCustomBean = new AnotherCustomBean(); @CreatedDate private Date creationDate; @LastModifiedDate private Date lastModifiedDate; . . . 

当我用mongoTemplate.save(myBean);保存这个bean时mongoTemplate.save(myBean); 它没有设置创建日期和上次修改日期…它没有错误。

任何帮助,将不胜感激,

谢谢。

实际问题是@Id注释。 要正确使用spring审计,你必须定义一个ObjectId(对于新保存的对象为null),这就是spring如何决定@LastModifiedDate@CreatedDate

之后,我找到了一种方法,可以通过实现Auditable@Id上使用自定义bean

感谢@Felby:

我发现@Id字段在save()时只需要为@CreatedDate和@CreatedBy注释时为空。 无论@Id字段是否已初始化,@ LastModifiedDate和@LastModifiedBy字段都有效。

我不确切知道,但尝试将joda-time添加到classpath以使用与日期相关的审计注释

  joda-time joda-time 2.2