我目前正在使用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时,它没有设置创建日期和上次修改日期......并且它没有错误。
任何帮助将不胜感激,
感谢。
答案 0 :(得分:5)
实际问题是@Id
注释。要正确使用spring审计,您必须定义一个ObjectId(对于新保存的对象为null),这就是spring决定@LastModifiedDate
和@CreatedDate
之后,我找到了一种方法,通过实施@Id
Auditable<String,String>
上使用自定义bean
感谢@Felby:
我发现@Id字段在save()时需要为null 仅适用于@CreatedDate和@CreatedBy注释。该 @LastModifiedDate和@LastModifiedBy字段无论如何都有效 @Id字段是否已初始化。
答案 1 :(得分:0)
我不确切知道,但尝试将joda-time添加到classpath以使用与日期相关的审核注释
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.2</version>
</dependency>