Получить идентификатор дочерней сущности сразу после сохранения родителя - PullRequest
1 голос
/ 04 марта 2011

Существует родительская сущность, которая имеет коллекцию дочерних сущностей (cascale = all), а каждая дочерняя сущность имеет коллекцию дочерних сущностей (cascale = all).

Учитывая сеанс, я создаюgrand-child и добавьте его к потомкам потомка в родительском элементе, и так как я также изменил некоторые другие объекты внутри иерархии, я вызываю Session.SaveOrUpdate для корня (parent).

После этого мне нужноid объекта grand-child, но он равен 0.

Теперь, если я дополнительно вызову Session.SaveOrUpdate для grand-child, я могу получить его новый идентификатор.Это нормальное поведение?С каскадами, установленными на все, я бы подумал, что смогу получить идентификатор при сохранении родителя.

Какие-нибудь просветы?

1 Ответ

1 голос
/ 06 марта 2011

SaveOrUpdate, когда вызывается на уже постоянном интерфейсе, ничего не делает.

Вы можете либо вызвать session.Persist(parent), который будет каскадно, либо позвонить session.Save(grandChild), как вы уже делаете (в этом нет ничего плохогоэто, хотя мне интересно, зачем тебе этот идентификатор)

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