在Hibernate中以多对一关系检索多方对象的ID

时间:2010-12-06 19:01:52

标签: java hibernate persistence

假设我有两个班,父母和孩子。这两者通过单向关系相关。

<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);

但是,在支持GUI的数据模型中尝试镜像此更改时会出现问题。据我所知,没有办法找到持久存在时分配给c的主键。这导致GUI出现问题,因为如果我向模型中添加多行,则无法区分它们以供以后使用。

我是否可以在持久保存后访问孩子的主键?

1 个答案:

答案 0 :(得分:2)

您可以在刷新会话后访问自动生成的密钥,即在explcit session.flush()之后或在事务提交之后。