NHibernate Oracle - проблема фиксации транзакции - PullRequest
0 голосов
/ 10 сентября 2009

0 проголосовало против

Привет

Я работаю с той же проблемой, что и во время фиксации транзакции. Я изменил всю строку сопоставления с AnsiString. Но все равно я получаю ошибку.

Выбор работает нормально, даже удаление также работает нормально.

Если моя транзакция содержит только один оператор вставки или оператор обновления, то она также работает нормально.

Но при наличии более одного запроса (вставка / обновление) во время фиксации выдается ошибка «Ограничение целостности: родительский ключ не найден»

Не могли бы вы мне помочь?

Махеш ....

Ответы [ 3 ]

0 голосов
/ 10 сентября 2009

NHibernate делает вставку (или обновление) вашего сотрудника до вставки вновь созданного employee_type. Ошибка означает, что ваш сотрудник пропускает свой тип employee_ в базе данных.

2 варианта:

  1. Выполните ISession.Flush после создания типа employee_ и перед созданием (или обновлением) вашего сотрудника.
  2. Измените внешний ключ на подлежащий исправлению.
0 голосов
/ 15 сентября 2009

Я получил решение ....

Это происходит со мной из-за поведения NHibernate ...

Я явно создал последовательности и триггеры для автоинкремента.

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

Это выдает ошибку - родительский ключ не найден.

Я только что удалил все триггеры и последовательности, и в файле отображения я добавил сгенерированный класс в качестве приращения. : D

"генератор класса =" приращение ""

У меня это прекрасно работает ...

Спасибо, Махеш

0 голосов
/ 10 сентября 2009

эта ошибка является ошибкой ограничения целостности. Это означает, что в конце вашей транзакции ребенок, у которого нет родителя в отношениях родитель-ребенок. Поскольку вы получаете эту ошибку при фиксации, это означает, что FOREIGN KEY объявлен как DEFERRABLE (изначально отложено) и проверяет целостность только во время фиксации.

У вас проблема в логике, возможно, вы могли бы опубликовать простой пример (CREATE TABLE parent ... CREATE TABLE child ... UPDATE / INSERT), и мы можем помочь вам в дальнейшем.

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