Spring数据mongodb审核不起作用。(Java配置)


问题内容

我当前正在使用Spring数据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);它保存此bean时,未设置创建日期和上次修改日期…并且没有错误。

任何帮助,将不胜感激,

谢谢。


问题答案:

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

之后,我找到了一种方法,可以@Id通过实现Auditable<String,String>

感谢@Felby:

我发现,仅对于@CreatedDate和@CreatedBy批注,在save()时@Id字段需要为空。无论@Id字段是否已初始化,@
LastModifiedDate和@LastModifiedBy字段都起作用。