映射多到一的關係對於我以前的帖子 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