Hibernate一对多双向关联映射

Hibernate一对多双向关联映射

1.需求:班级和学生

2.Javabean设计

3.映射配置

4.测试

5.总结

1javabean 设计

Clazz班级: 一的一端,对应多个学生

 

Student学生: 多的一端,对应一个班级

 

 

2.配置映射文件

学生端配置(加载类的映射文件前面博客有写到不做重复)

//映射关键点

1.映射的Clazz属性:clazz

2.映射的Clazz对象对应的外键;classnum(数据库中的字段)

3.对应的Clazz类型:Clazz

<many-to-one  name=”clazz” column=”classnum” class=”Clazz”>

</many-to-one>

班级端配置

//映射关键点

映射的集合属性:stus

集合属性对应的表:student_t(可以省略)

对应的外键:clazzid

对应的类型:Student

<one-to-many  name=”stus” >

<key =”clazznum”>

<class=”Student”>

</one-to-many>

 

3.3.测试

 

结果

 

 


总结:

  在一对多与多对一的关联关系中,保存数据最好的通过多的一方来(先保存一的一方)维护关系,这样可以减少update语句的生成,从而提高hibernate的执行效率!

配置一对多与多对一,这种叫“双向关联”

只配置一对多,           “单项一对多”

只配置多对一,           “单项多对一”

 

注意:

配置了哪一方,哪一方才有维护关联关系的权限!


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值