NHibernate, откат транзакции и версия Entity - PullRequest
2 голосов
/ 03 сентября 2010

В данный момент я пытаюсь реализовать код, который обрабатывает исключения из устаревшего состояния (т. Е. Другой пользователь изменил эту строку и т. Д.), Когда я совершаю транзакцию с использованием nhibernate.Идея состоит в том, чтобы, когда возникает исключение при сбросе, для отката транзакции «исправить» сущности различными способами, а затем повторно выполнить весь код транзакции снова.

Моя проблема заключается в том, когда транзакция откатываетсясвойство версии сущностей все еще было увеличено для тех сущностей, которые успешно обновили базу данных, даже если транзакция в базе данных была откатана (это фактически также верно для сущности, которая провалила транзакцию).Это означает, что второй запуск никогда не будет успешным, потому что версия не синхронизирована с базой данных.

Как мне решить эту проблему?

1 Ответ

4 голосов
/ 03 сентября 2010

Когда выдается исключение NHibernate, вы ДОЛЖНЫ выбросить этот сеанс, поскольку состояние больше не считается действительным.

Это также подразумевает повторное получение сущностей.

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