我有两个不同的表,Person
表和Employee
表。我需要在这两者之间进行一对一的映射。 Employee
表格emp_id
参考Person
表格id
。我需要一些帮助来编写映射xml。
person.hbm.xml:
<hibernate-mapping>
<class name="Persons" table="Persons">
<id name="id" column="id" type="java.lang.Integer">
<generator class="native"></generator>
</id>
<property name="firstName" column="FIRST_NAME" type="java.lang.String">
</property>
<one-to-many name="employee" column="per_id" unique="true" class="Persons"
not-null="true"/>
</class>
</hibernate-mapping>
employee.hbm.xml
<hibernate-mapping>
<class name="Employee" table="Employee">
<id name="id" column="id" type="java.lang.Integer">
<generator class="native"></generator>
</id>
<property name="name_id" column="NAME_ID" type="java.lang.String">
</property>
<property name="emp_id" column="emp_ID" type="java.lang.String">
</property>
</class>
</hibernate-mapping>
如何从emp_id
表格中Employee
表id
和Persons
编写映射?
注意:id
表的{/ em> Persons
是主键
答案 0 :(得分:0)
在 employee.hbm.xml :
中<many-to-one name="person" class="Persons" column="emp_ID" />
要使关系双向,您可以在person.hbm.xml中添加以下内容:
<one-to-one name="employee" class="Employee" property-ref="person"/>
如果您可以修改员工表中引用人员表&#34; id&#34;的emp_ID列(foriegn key列),那将更容易理解并且不会让其他人感到困惑。列到person_id
员工表:
重命名emp_ID - &gt;为person_id