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

时间:2014-11-04 06:54:51

标签: java spring mongodb spring-mvc spring-data-mongodb

我目前正在使用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时,它没有设置创建日期和上次修改日期......并且它没有错误。

任何帮助将不胜感激,

感谢。

2 个答案:

答案 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>