需求:
项目与开发人员
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>