Я работаю над кодом, использующим спящий режим PostxxxEventListeners. Для управления событиями используется Spring PublisherHandler.
В основном это работает, как и ожидалось, но у меня есть один объект с каскадным (нетерпеливым) соединением один к одному. Итак, в таблице Person у меня есть ...
@OneToOne(cascade={CascadeType.ALL}, fetch=FetchType.EAGER)
@JoinColumn(name="`address_id`")
private Address address_id;
Моя проблема заключается в том, что когда я удаляю запись Person, я получаю событие PostUpdateEventListener в таблице Person, где адрес удаляется, и таблица Person обновляется пустым значением до того, как будет удален следующий экземпляр (запускается требуемый PostDeleteEventListener) .
Я все еще исследую это и подозреваю, что мне нужно изменить JPA или, возможно, какой-нибудь код нисходящего потока, но я подумал, является ли это общей проблемой, которую кто-то может указать на лучший подход для решения? Могу ли я сначала принудительно удалить родительский объект, чтобы я не получил обновление?
Я удалил Eager, и это не помогло. Я заметил, что у класса есть аннотация @Inheritance со стратегией JOINED.
Спасибо