Hibernate关联映射

最近总结的关于Hibernate关联映射的笔记,权当复习,这里分享一下,如果水到大家了,请指正,感谢不已。


hibernate关联映射


软件开发中,类与类之间最普遍的关系就是关联关系。
--------------------------------------------------------------------------------------------------------
关联关系:
“多”方通过外键引用“一”方表的主键实现一对多的关联。
多对多,除了两张“多”方表之外,还需要一张额外的表,通过外键分别引用两张“多”方表的主键来实现多对多的关联。
--------------------------------------------------------------------------------------------------------
多对一单向关联:
多的一方使用<many-to-one>映射一的一方
--------------------------------------------------------------------------------------------------------
一对多双向关联:
在上述基础上,在一方的类中添加Set<???> ???属性
例如部门类:
public class Dept implements Serializable{
private Byte deptno;
private String deptName;
private String location;
private Set<Emp> emps=new HashSet<Emp>();//员工集合
}
由于在部门表中没有直接于emps属性对应的字段,因此不能使用<property/>元素来映射emps属性,而要使用<set>元素:
<set name="emps">
<key column="DEPTNO"/>
<one-to-many class="cn.jbit.hibernatedemo.entity.Emp" />
</set>
=========================================================================================================
<set>元素表示Dept类的emps属性为java.util.Set集合类型
<key>内的column属性表示与之关联的持久化类对应的表的外键
<one-to-many>内的class属性表示与之关联的持久化
=========================================================================================================
cascade属性
在<set>元素中配置,用于级联增删改
使用:
1.创建“一”的对象,然后创建“多”的对象,让它们倆建立一对多双向关联关系,最后保存
“一”的对象。于是,保存“一”的同时就会自动保存“多”的对象。
2.删除“一”的对象,会级联删除与“一”存在关系的“多”的对象。
注意:在简历两个对象的双向关联时,应该同时修改关联两段的对象的相应属性(即第1点中的行为)
emp.setDept(dept);
dept.get.Emps().add(emp);
这样才会使得程序更加强壮,提高业务逻辑层的独立性,使得业务逻辑层的代码不受hibernate实现的影响。
=========================================================================================================
inverse属性
inverss默认为false值,为主动方。
提高java应用的性能,一般在<set>元素里设置inverse属性的值为true(表示“多”的一方负责维护关系)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值