Spring пытается установить поля аудита для нулевого объекта - PullRequest
0 голосов
/ 14 февраля 2019

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 , что является той же проблемой, что и у меня.

Любая идея о том, как чиститьсправиться с этой проблемой?Может быть, перейти от наследования к композиции?Или мне просто терпение ждать новой версии?

...