我正在尝试使用 @LastModifiedDate
和 @LastModifiedBy
批注来审核我在MongoDB中的记录。
这里是我的模特
@Document(collection = "A")
class A{
@LastModifiedBy
private String lastModifiedUser;
@LastModifiedDate
private Instant lastModifiedDate;
private List<B> listB;
}
class B{
@LastModifiedBy
private String lastModifiedUser;
@LastModifiedDate
private Instant lastModifiedDate;
}
Service1.class
public class Service1 {
public void saveA(A a) {
repository.save(a)
}
}
对于 class A
来说工作正常,但不适用于嵌入式 class B
。
任何帮助将不胜感激。
使用2.1.10- Spring Data Mongo and for Springboot 2.1.8.Release
答案 0 :(得分:1)
您的帖子中没有太多内容可以了解最终目标的解决方案...因此,我将尽力而为:)
在撰写本文的当天,如here所述,spring在嵌入文档审核方面存在一个已知问题,因此您必须使用自己的设置逻辑覆盖audit
接口并更改lastModifiedUser
和lastModifiedDate
字段,这是可行的,但并非如此容易,并且可能会在项目中spring-data
的功能中引入不良行为
或
您可以通过自定义方法强制B
进行所有更改,因此List<B>
的每次修改都会触发“更改检查”(不涉及任何spring-data
功能)>
(我的建议)是另一种方法
使用B
作为单独的文档,并使用A
@DBRef
中。