Здравствуйте, Jeremy, Вы писали:
J>Но вот возникла ситуация, когда в цепочке A -> B -> C отсутствует последний элемент, то есть в таблице С нет записи с идентификатором указанным в таблице B. При этом бросается "org.hibernate.ObjectNotFoundException", что есть правильно. Однако с точки зрения логики моей программы эта ошибка не должна приводить к фатальным последствиям,
У вас целостность базы нарушена и это не должно приводить к фатальным последствиям??? Почему констрейнта на FK нет?
J>то есть я ее ловлю, пишу в лог и продолжаю работать дальше. И вот здесь возникает проблема. При попытке закоммитить транзакцию бросается новая ошибка типа "org.hibernate.HibernateException: Found two representations of same...". Анализ стектрейса показывает, что происходит эта беда при session.flush() что случается перед коммитом транзакции. Причем в сессии я вижу висящим J>обьект A загрузка которого вызвала ошибку №1 (и попытка сохранить который приводит к ошибке №2). J>Вопрос такой — почему вообще обьект А оказался в сессии — ведь он не был до конца загружен, то есть по идее находится в невалидном состоянии? Как с этим бороться?
Хотелось бы все же увидеть полный текст ошибки, stacktrace и немного кода. Ибо ошибка Found two representations of same collection у меня с вашим A-B-C что-то не вяжется.