nHibernate: сохранение нового родительского объекта при создании дочернего объекта
-
22-08-2019 - |
Вопрос
Я пытаюсь сохранить запись с сопоставлением свойств "многие к одному".Я пытаюсь назначить здесь только что созданный родительский объект (или использовать существующий, но это нормально работает), но я получаю сообщение об ошибке, когда он пытается добавить идентификатор родительского объекта в дочернюю таблицу.Сказать, что он не может добавить NULL в таблицу, что верно, но я думал, что nHibernate был достаточно умен, чтобы сначала сохранить родительский объект, даже если я добавляю дочерний.
Сопоставления:
Ребенок:
родовое словоРодитель:
родовое словоВ принципе, может ли это nHibernate?
Решение
Я не вижу вашего родительского сопоставления, но готов поспорить, если у вас включен inverse= true и каскадирование для набора дочерних объектов, и вы разрешаете нули в столбце parentID вашего дочернего объекта, когдаРодитель успел сохранить его, чтобы правильно обновить дочерний объект.
Другие советы
Такое поведение может быть вызвано тем, что ваш первичный ключ «назначен», а не генерируется Nhibernate.