我正在使用Java EE和JSF编写Web应用程序。作为数据链接层,我正在使用hibernate。
Master和Slave类扩展了Device类。它们使用Device表的主键 - “DEVICE_ID”。我想知道哪个Slave记录与Master记录有关。因此,我需要在Slave表中添加额外的约束。
我该怎么做?请帮我!任何反馈都表示赞赏!
Device.hbm.xml;
<hibernate-mapping>
<class name="deviceManagement.Device" table="DEVICE">
<id name="DEVICE_ID" type="int">
<column name="DEVICE_ID" />
<generator class="increment" />
</id>
<property name="DEVICE_NAME" type="java.lang.String">
<column name="DEVICE_NAME" unique="true" />
</property>
<property name="DEVICE_TYPE" type="java.lang.String">
<column name="DEVICE_TYPE" />
</property>
...
Slave.hbm.xml;
<hibernate-mapping>
<joined-subclass name="deviceManagement.Slave" extends="deviceManagement.Device" table="SLAVE" lazy="false">
<key>
<column name="DEVICE_ID" />
</key>
<property name="LUMINAIRE_MODEL" type="java.lang.String">
<column name="LUMINAIRE_MODEL" />
</property>
...
Master.hbm.xml;
<hibernate-mapping>
<joined-subclass name="deviceManagement.Master" extends="deviceManagement.Device" table="MASTER" lazy="false">
<key>
<column name="DEVICE_ID" />
</key>
<property name="HOST_NAME" type="java.lang.String">
<column name="HOST_NAME" />
</property>
...
答案 0 :(得分:0)
你可以在slave.hbm.xml中添加一个列作为Master实体的外键,你必须定义fetch类型,所以hibernate将在你获取slave实体时处理连接并拥有master实体初始化