映射多到一的关系对于我以前的帖子 Previous Post问题在休眠
我有一个父表A和A到B的其子表B.关系是一个一对多的地方从B到A的是多对一的 我需要从表B的数据中获取基于它的父id的数据,并且为此我试图使用命名查询,这里是子表的更新后的hbm文件。
<hibernate-mapping>
<class
name="ChildClass"
table="B">
<id name="uuid" type="java.lang.String">
<column name="UUID" />
<generator class="uuid" />
</id>
<!-- <version name="version" column="OBJ_VERSION" /> -->
<many-to-one name="A"
class="ParentClass" fetch="join">
<column name="PARENTID" />
</many-to-one>
<property name="parentid" type="java.lang.String" update="false" insert="false">
<column name="PARENTID" />
</property>
</class>
</hibernate-mapping>
开始的想法添加
<property name="parentid" type="java.lang.String" update="false" insert="false">
<column name="PARENTID" />
</property>
是利用基于parentid.Something这样
<hibernate-mapping>
<query name="getChildRecordsByParentID">
from Child child where child.parentid = :parentid
</query>
</hibernate-mapping>
休眠命名查询和我能够做到这一点,但在打一个主要的问题。有时我想更新基于parentid的子表,所以我只是基于parentid获取父对象,并在子实体中使用其引用,并试图保存子实例,一切都得到妥善保存,除了正在被设置的parentid为"null"
我认为null
只读
被设置为我所做的parentId的我只是在Hibernate中首发所以不知道确切位置我在做映射时出错,因为更改映射文件导致第二个功能停止工作。
在这方面的任何帮助将大有裨益。
@Sena:是的,你同意你说的是真的我正在使用child.setA(parent)来维护孩子与父母的关系。我只添加了其他属性与destinationid为namedquery – 2011-03-24 05:02:49
它似乎并不重要,但也许尝试直接将'column'属性添加到'many-to-one'元素,而不是使用子列: –
2011-03-24 05:26:43
我无法得到您在第二条评论中所说的内容,请您详细说明一下 – 2011-03-24 05:35:31