春季数据 mongodb 审计不起作用..(Java config)

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

@Document
public class MyBean{

@Id
private AnotherCustomBean anotherCustomBean = new AnotherCustomBean();

@CreatedDate
private Date creationDate;

@LastModifiedDate
private Date lastModifiedDate;

.
.
.

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

任何帮助将不胜感激,

谢谢。


答案 1

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

之后,我找到了一种方法,通过实现实现自定义bean@IdAuditable<String,String>

感谢@Felby:

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


答案 2

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

<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.2</version>
</dependency>