Приложение Spring-Hibernate по-разному работает в двух разных базах Oracle. - PullRequest
3 голосов
/ 07 ноября 2011

У меня есть приложение в спящем режиме, и я столкнулся со странной проблемой. У меня есть 2 отдельных экземпляра одного и того же приложения, подключающегося к двум разным базам данных Oracle. У меня есть функция, которая использует метод saveOrUpdate () hibernate для обновления объекта в БД. Также первичным ключом этой сущности является внешний ключ числа таблиц.

Проблема в том, что когда мы обновляем объект этой сущности, все внешние ссылки на этот объект в других таблицах обнуляются в одной из БД, хотя все отлично работает в другой БД. Из-за этого у нас много нулевых внешних ключей в БД. Я не могу понять, почему это происходит и что именно нужно сделать, так как для одного дБ все вроде бы работает нормально. Пожалуйста, помогите.

1 Ответ

2 голосов
/ 22 октября 2012

Я предлагаю вам сначала добавить ограничение внешнего ключа в другие таблицы в базе данных oracle. Поэтому всякий раз, когда какой-либо процесс пытается обнулить внешний ключ, этот процесс завершится неудачей. Теперь преимущество этой ошибки в том, что вы сможете точно отслеживать, где возникает проблема.

Если hibernate испортил данные (что не должно быть в идеале), тогда трассировка исключений покажет классы hibernate в трассировке, иначе, если какой-то триггер базы данных или что-то еще в БД вызывает проблему, вы получите код ошибки SQL в исключении трассировки стека.

Так что, пожалуйста, попробуйте это и дайте нам знать, что вы найдете. Может быть, ты сам получишь ответ.

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