您的位置:首页 > 其它

Hibernate 一对一映射

2016-05-11 17:42 337 查看
基于外键的映射(给外键加上了唯一约束)

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2016-5-11 11:46:48 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="one2one.foreign.Department" table="DEPARTMENT">
<id name="deptId" type="java.lang.Integer">
<column name="DEPT_ID" />
<generator class="native" />
</id>
<property name="deptName" type="java.lang.String">
<column name="DEPT_NAME" />
</property>
<!-- 使用 many-to-one 的方式来映射 1-1关联关系
添加unique=“true” 属性来表示为1-1关联
-->
<many-to-one name="mgr" class="one2one.foreign.Manager"
column="MGR_ID" unique="true"></many-to-one>
</class>
</hibernate-mapping>


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2016-5-11 11:46:48 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="one2one.foreign.Manager" table="MANAGER">
<id name="mgrId" type="java.lang.Integer">
<column name="MGR_ID" />
<generator class="native" />
</id>
<property name="mgrName" type="java.lang.String">
<column name="MGR_NAME" />
</property>

<!-- 没有外键的一端需要使用 one-to-one元素,该元素使用property -->
<one-to-one name="dept"
class="one2one.foreign.Department"
property-ref="mgr"></one-to-one>
</class>
</hibernate-mapping>


基于主键键的映射

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.atguigu.hibernate.one2one.primary">

<class name="Department" table="DEPARTMENTS">

<id name="deptId" type="java.lang.Integer">
<column name="DEPT_ID" />
<!-- 使用外键的方式来生成当前的主键 -->
<generator class="foreign">
<!-- property 属性指定使用当前持久化类的哪一个属性的主键作为外键 -->
<param name="property">mgr</param>
</generator>
</id>

<property name="deptName" type="java.lang.String">
<column name="DEPT_NAME" />
</property>

<!--
采用 foreign 主键生成器策略的一端增加 one-to-one 元素映射关联属性,
其 one-to-one 节点还应增加 constrained=true 属性, 以使当前的主键上添加外键约束
-->
<one-to-one name="mgr" class="Manager" constrained="true"></one-to-one>

</class>
</hibernate-mapping>


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

<class name="com.atguigu.hibernate.one2one.primary.Manager" table="MANAGERS">

<id name="mgrId" type="java.lang.Integer">
<column name="MGR_ID" />
<generator class="native" />
</id>

<property name="mgrName" type="java.lang.String">
<column name="MGR_NAME" />
</property>

<one-to-one name="dept"
class="com.atguigu.hibernate.one2one.primary.Department"></one-to-one>

</class>

</hibernate-mapping>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: