在Hibernate中映射父子关系映射,但无法找到最佳方法。这是对问题的描述。
我有一个类作为父类和一个子类没有独立的生命周期。这是我的父类的映射
<class name="PARENT" table="PARENT">
<id name="uuid" type="java.lang.String">
<column name="UUID" />
<generator class="uuid"/>
</id>
<property name="creationDate" type="java.util.Date">
<column name="CREATIONDATE" />
</property>
<set name="childtable" table="CHILD" inverse="false" lazy="true">
<key>
<column name="UUID" />
</key>
<one-to-many class="CHILD" />
</set>
这里是Child类映射
<class name="CHILDCLASS" table="CHILDCLASS">
<id name="parentID" type="java.lang.String">
<column name="PARENTCLASSID" />
<generator class="uuid"/>
</id>
<property name="deperatureTime" type="java.util.Date">
<column name="DEPERATURETIME" />
</property>
但我想要的是当父类被持久化时,它将使子类持久化,这是可以实现的,但我希望在子类中,parentclassid字段应该具有父类的标识符字段的值。
e.g
如果父类ID值id为1,而不是{child}的
PARENTCLASSID
个字段 应该有值1
我不确定我是否能理解这个问题,如果不是,请问我,我会尝试解释。
答案 0 :(得分:0)
我怀疑你正在寻找一对一的共享主键映射。 这有帮助吗? Shared primary key in hibernate
答案 1 :(得分:0)
我认为你正在寻找这样的东西:
<class name="PARENTCLASS" table="parentTable">
<id name="parentID" type="java.lang.String">
<column name="PARENTCLASSID" />
<generator class="uuid"/>
</id>
<property name="deperatureTime" type="java.util.Date">
<column name="DEPERATURETIME" />
</property>
<set inverse="true" name="fieldName">
<key>
<column name="sql_id_name" not-null="true"/>
</key>
<one-to-many class="CHILDCLASS"/>
</set>
</class>