Hibernate多对多映射举例与总结

需求:   

项目与开发人员

             Project     Developer

  电商系统

             张三

             李四 

  OA系统

           张三

           王五

数据库


步骤一:我们先建立一个项目类与开发人员类(此处省略get() set()封装)

 



步骤二:配置相关的映射文件

Project.hbm.xml


Developer.hbm.xml



步骤三:配置 hibernate.cfg.xml文件  连接数据库(此处省略)


步骤四: 





运行之后的数据库:



 


维护关联关系

设置inverse属性,在多对多种维护关联关系的影响?

1) 保存数据

有影响。

 inverse=false ,有控制权,可以维护关联关系; 保存数据的时候会把对象关系插入中间表;

inverse=true,  没有控制权, 不会往中间表插入数据。

2) 获取数据

无。

 

3) 解除关系

// 有影响。

// inverse=false ,有控制权, 解除关系就是删除中间表的数据。

// inverse=true, 没有控制权,不能解除关系。

4) 删除数据

有影响。

// inverse=false, 有控制权。 先删除中间表数据,再删除自身。

// inverse=true, 没有控制权。 如果删除的数据有被引用,会报错! 否则,才可以删除

 

回顾一下:

 

一对多:

<set name="映射的集合属性" table="(可选)集合属性对应的外键表">

   <key column="外键表的,外键字段" />

   <one-to-many class="集合元素的类型" />

</set>

 

多对一:

    <many-to-one name="对象属性" class="对象类型" column="外键字段字段" />

 

多对多

    <set name="" table="">

        <key column="" />

        <many-to-many column="" class="">

    </set>






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值