Получение идентификатора объектов со многими сторонами в отношениях «многие к одному» в Hibernate - PullRequest
0 голосов
/ 06 декабря 2010

Допустим, у меня есть два класса, Родитель и Ребенок. Эти два связаны однонаправленными отношениями.

<bag name="children" cascade="all">
    <key column="parent_id" />
    <one-to-many class="Child" />
</bag>

Если я хочу добавить дочерний элемент к родителю, насколько мне известно, мне нужно загрузить родительский элемент, добавить к нему дочерний элемент и сохранить родительский элемент:

Parent p = dao.getParent();
Child c = new Child();
p.getChildren().add(c);
dao.saveOrUpdate(p);

Однако возникает проблема при попытке отразить это изменение в модели данных, поддерживающей графический интерфейс. Насколько я могу судить, нет способа найти первичный ключ, который был назначен на c, когда он был сохранен. Это вызывает проблему в графическом интерфейсе, поскольку, если я добавлю несколько строк в модель, их будет невозможно различить для последующего использования.

Есть идеи, как мне получить доступ к первичному ключу ребенка после его сохранения?

1 Ответ

2 голосов
/ 06 декабря 2010

Вы можете получить доступ к автоматически сгенерированным ключам после сброса сеанса, т. Е. После explcit session.flush() или после подтверждения транзакции.

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