Spring-data-mongodb пытается добавить createDate к нулевому объекту и не может этого сделать.Как настроить весенний аудит так, чтобы он игнорировал пустые объекты, чтобы он не пытался добавить к нему поля аудита?
У меня есть абстрактный класс со всей информацией аудита.Два класса (A, B) расширяют этот абстрактный класс, и один из этих двух классов (A) имеет ссылку на другой класс (B) (который может быть обнуляемым).Если я пытаюсь сохранить объект A с нулевой ссылкой на B. Все завершается неудачей, потому что 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.
Быстрый поиск в Google привел меня к jira.spring.io , что является той же проблемой, что и у меня.
Любая идея о том, как чиститьсправиться с этой проблемой?Может быть, перейти от наследования к композиции?Или мне просто терпение ждать новой версии?