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

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

之后,我找到了一种方法,可以通过实现Auditable< String,String>在@Id上使用自定义bean.

感谢@Felby:

I found that the @Id field needed to be null at the time of save()
only for the @CreatedDate and @CreatedBy annotations. The
@LastModifiedDate and @LastModifiedBy fields worked regardless of
whether the @Id field was initialized or not.

标签:java,spring,mongodb,spring-mvc,spring-data-mongodb
来源: https://codeday.me/bug/20191006/1861440.html