主键关联生成的关系模型: (每个员工只属于一个部门)
t_employee(id int pk fk->t_department(id), name varchar)
t_department(id int pk, name varchar)
1、主键单向关联
实体模型:
com.lrh.hibernate.Employee(int id, String name, Department department)
com.lrh.hibernate.Department(int id, String name)
配置文件:
<!-- com.lrh.hibernate/Employee.hbm.xml -->
<hibernate-mapping>
<class name="com.lrh.hibernate.Employee" table="t_employee">
<id name="id">
<!-- 采用foreign生成策略,Employee的主键来源Department,forgeign会取得关联对象的标识 -->
<generator class="foreign">
<!-- 指定要参照的属性 -->
<param name="property">department</param>
</generator>
</id>
<property name="name"/>
<!-- one-to-one标签的含义,表明hibernate如何加载它的关联对象,默认是根据主键加载,
constrained="true",表明当前主键上存在一个约束,当前主键(Employee的主键)还是一个外键
参照了对端的主键(Department的主键)
-->
<one-to-one name="department" constrained="true" />
</class>
</hibernate-mapping>
<!-- com.lrh.hibernate/Department.hbm.xml -->
<hibernate-mapping>
<class name="com.lrh.hibernate.Department" table="t_department">
<id name="id"><generator class="native"/></id>
<property name="name"/>
</class>
</hibernate-mapping>
2、主键双向关联
实体模型:
com.lrh.hibernate.Employee(int id, String name, Department department)
com.lrh.hibernate.Department(int id, String name, Employee employee)
配置文件:
<!-- com.lrh.hibernate/Employee.hbm.xml -->
<hibernate-mapping>
<class name="com.lrh.hibernate.Employee" table="t_employee">
<id name="id">
<!-- 指定主键生成策略为外键 -->
<generator class="foreign">
<!-- 指定要参照的属性 -->
<param name="property">department</param>
</generator>
</id>
<property name="name"/>
<!-- 使用<one-to-one>映射一对一关系。 -->
<one-to-one name="department">
</class>
</hibernate-mapping>
配置文件:
<!-- com.lrh.hibernate/Department.hbm.xml -->
<hibernate-mapping>
<class name="com.lrh.hibernate.Department" table="t_department">
<id name="id"><generator class="native"/></id>
<property name="name"/>
<!--
需要在Department映射文件中加入<one-to-one>标签指向employee,指示hibernate如何加载employee
默认根据主键加载
-->
<one-to-one name="employee"/>
</class>
</hibernate-mapping>
分享到:
相关推荐
Hibernate 一对一主键单向关联 Hibernate 一对一连接表单向关联 Hibernate 一对多外键单向关联 Hibernate 一对多连接表单向关联 Hibernate 多对一外键单向关联 Hibernate 多对一连接表单向关联 Hibernate 多对多单向...
博文链接:https://shaqiang32.iteye.com/blog/201309
hibernate 无主键表映射资源说明: 1. 简单Demo 2. Demo对应的sql语句 3. 对应博客文档
博文链接:https://llying.iteye.com/blog/220803
博文链接:https://llying.iteye.com/blog/220802
Hibernate关联关系映射 单向关联 │ ├─ 一对一外键单向关联 │ ├─ 一对一主键单向关联 │ ├─ 一对一连接表单向关联 │ ├─ 一对多外键单向关联 │ ├─ 一对多连接表单向关联 │ ├─ 多对一外键单向关联 │ ...
联合主键用Hibernate注解映射方式主要有三种: 第一、将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主键...
这个是针对初学Hibernate一对多主键关联映射的源代码 ,希望对初学者有所帮助,开发环境是MyEclipse7.5和HIbernate3.2
博文链接:https://shaqiang32.iteye.com/blog/201308
复合主键映射 <br>通常将复合主键相关属性,单独抽取出来,建立一个独立的类 * 必须实现序列化接口 * 必须实现equals和hashcode方法 采用标签进行映射,其它属性采用正常映射
NULL 博文链接:https://12345678.iteye.com/blog/723871
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
hibernate映射文件--主键生成策略[参考].pdf
NULL 博文链接:https://zhangzhi199129.iteye.com/blog/1663919
009 一对一 主键关联映射_单向 010 一对一 主键关联映射_双向 011 一对一 唯一外键关联映射_单向 012 一对一 唯一外键关联映射_双向 013 session_flush 014 一对多关联映射 单向 015 一对多关联映射 双向 016 多对多...
Hibernate想要实现双向的关联就必须在映射文件的两端同时配置,另外还要在主映射的一端采用foreign外键关联属性,下面我们就一起来看一下Java的Hibernate框架中的双向主键关联与双向外键关联方法:
关于hiberante主键的一对一的映射,单向的,实例
hibernate主键一对一关联映射代码示例
Hibernate高级映射的几个单向关系,单向一对一(共享主键方式、唯一外键方式),单向多对一,单向一对多,单向多对多。