Hibernate关联映射
一:关联关系
- 从一个表到另一个表的关联就称为:单向关联
如果同时包含两种表就称:为双向关联
*映射关系如下:
多对一单向关联关系
一对多双向关联关系
多对多关联关系
- 持久化操作:保存
Public class EmpDao extends BaseDao{
Public void save(Emp emp){
This.currentSession().save(emp);//省略其它代码
}
} - 建立双向一对多关联关系:
列如:给定Emp对象,如果想获得与它关联的Dept对象:如下
Dept dept=emp.getDept();//从Emo对象导航到关联的Dept对象
4.<set>元素:还包含了其它两个元素:
<key>元素:column属性设定与所关联的持久化类相对应的表外键,此处表的DEPTNO字段
<one-to-many>元素:Class属性设定关联的持久化类型,此处为Emp 类Hibernate根据以上映射代码可活动以下信息。 - 双向关联关系下的增删该操作
级联操作可以为持久化映射文件中通过cascade属性和inverse属性进行控制。
5.<set>元素的inverse属性
<set>属性的inverse属性的值有两个,即true和false默认是false,关系关联中,inverse=”false”的伪主动方,主动方负责维护关联关系。
二:加载 - 立即加载:
在xml文件中。
<class name=”文件路径全名” lazy=”false” table=”对象名”>
以下代码表明Dept类的emps集合采用立即加载策略
<set name=”emps” inverse=”true” lazy=”false”>….</set>
-
延迟加载:
默认加载:<class name=”文件全名” lazy=”true” table=”对象名”>
对于<set>元素,应该优先考虑使用默认的延迟加载策略
<set name=”emps” inverse=”true”>…..</set> - 增强延迟加载:
<set name=”emps” inverse=”true” lazy=”extra”>….</set>
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦