В Hibernate Interceptor получает тот же объект коллекции, что и текущий и предыдущий, как мне получить реальные текущие и предыдущие значения? - PullRequest
2 голосов
/ 26 февраля 2010

У меня есть перехватчик для управляемого объекта Hibernate. Таблицы File и Customer имеют промежуточную таблицу (FileCustomer), которая представляет собой взаимосвязь между многими. Это управляется в Hibernate классом File.

@OneToMany(mappedBy = "file", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private List<FileCustomer> fileCustomers= new ArrayList<FileCustomer>();

Мы изменяем объект File, включая замену некоторых объектов FileCustomer (но не меняя базовые объекты Customer).

Когда вызывается onFlushDirty, обновление File содержит измененные свойства объекта File, все в порядке. Однако коллекция свойств, содержащая список объектов FileCustomer, имеет одинаковые предыдущие и текущие значения.

Я что-то упустил? Как я могу получить доступ к предыдущим и новым значениям для свойства коллекции?

1 Ответ

2 голосов
/ 26 февраля 2010

Отметьте это post , это даст вам идею получить оба объекта, в основном вы можете сохранить FileCustomer в методе preFlush, чтобы вы сравнили коллекцию в onFlushDirty с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...