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