hibernate多对多

Java开发交流群 677807540   大家可以一起讨论技术欢迎加入

one to one 
person 
    idcaid
    <one-to-one name="" class="" cascade=""></one-to-one>
one-to-many
Dept
Set<Emp>
<set name="" cascade="" inverse="" lazy="">
    <key column="did">
    <one-to-many class=""/>
</set>
Emp
dept
<many-to-one name="" class="">
    <column name="did">
    </many-to-one>
多对多必须添加第三章表 -桥表
1桥表中自由表示关联
在使用hibernate反向生成实体类,不用生成桥表的实体类;
桥表中只有自己自己的主键而且自增,还由连个表中所对应的外键.
不需要设置foreign key 设置了hibernate会帮我们生成一对多的关系;
我们手动设置多对多的关系;
俩个实体类表中分别有对方的set集合属性;
文件配置
Course的xml
<!-- key column:表示当前表与桥表的关联字段
  many-to-many column:表示对方表与桥表的关联字段 -->

<set name="stus" table="sc" lazy="false" cascade="all" inverse="false">
    <key column="cid"></key>
    <many-to-many class="com.etoak.po.Student" column="sid"></many-to-mane>
</set>
在Student的xml
<set name="cs" table="sc" cascade="save-update" lazy="false" inverse="true">
  <key column="sid"></key>
  <many-to-many class="com.etoak.po.Course" column="cid"></many-to-many>
 </set>
俩个表都是互相添加;
就是根据cid sid 建立起联系;
俩个表互相添加 建立连接;
如果俩个表都已经存在,我们添加东西就是对立面进行更新

2桥表中有自己的业务字段
hibernate帮我们生成俩个一堆多的关系(在创建表的时候设置foreign key)
也要生成桥表实体类;
根据cid sid 可以找到业务表;
如果俩个表都已经存在 将俩个表的id 传进桥表中 并添加到数据库,三个表直接的练习就建立起来了;
将俩个表添加到桥表中  然后update或者add桥表建立连接;
外键字段交给桥表更新;
如果保存 stu, 在stuxml 设置scs cascade 在桥表中xml设置 cs  cascade

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值