Spring-data-mongodb尝试将createdDate添加到空对象,但未这样做。如何配置Spring Audit以忽略空对象,以便它不尝试向其添加审计字段?
我有一个包含所有审核信息的抽象类。两个类(A,B)扩展了此抽象类,并且这两个类(A)中的一个引用了另一个类(B)(可以为空)。如果我尝试保存对B的空引用的A对象。这一切都会失败,因为spring试图将审计信息添加到B的空引用中。
public abstract class AA {
@Id
private String id;
@Version
private Long version;
@CreatedDate
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime LastModifiedDate;
}
public class A extends AA {
private String name;
@Nullable
private B b;
}
public class B extends AA {
private String name;
}
public class ControllerA {
private AMongoRepository aMongoRepo;
public void saveSomeA(String name) {
A a = new A();
a.setName("Some Name");
a.setB(null);
aMongoRepo.save(a); // <-- Fails can not set createdDate on B null
}
}
我收到的错误消息如下。
org.springframework.data.mapping.MappingException: Cannot lookup property B A.b on null intermediate! Original path was: b.createdDate on A.
谷歌快速搜索将我带到jira.spring.io,这与我遇到的问题相同。
关于如何彻底解决此问题的任何想法?也许从继承转向合成?还是我应该耐心等待新版本?