2010-12-06 44 views
0

假设我有两个类,Parent和Child。这两者通过单向关系相关。在休眠中检索多对一关系中的多边对象的ID

<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中会导致问题,因为如果我向该模型添加多行,则无法区分它们以供以后使用。

任何想法,我可能能够访问孩子的主键后,它已被持续?

回答

2

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

+0

呃......我可以发誓我检查了它,它回来为空。但我只是调试,你说得对。谢谢。 – Tenner 2010-12-06 19:25:15