Hibernate 一对多之单向

Hibernate一对多有两种,单向和双向。



单向一对多中,一般在“一”方定义one-to-many的set,由“一”方维护关联关系,如

User.hbm.xml:

......

xml代码
<set name="cards" inverse="false" cascade="all">
<key column="userId" not-null="true" /> <!-- Card表中指向User表的关联外键 -->
<one-to-many class="wintys.hibernate.onetomany.Card" />
</set>


在“多”方则不再需定义和“一”方关联的外键。

因为“一”方设置了cascade="all",我们在代码中只需持久化“一”方对象即可。
java代码
set cards = new hashset();
c = new Card(3650f);
cards.add(c1);

user.setCards(cards);
session.save(user);



但是这里要注意的是,Hibernate在关联保存card时,会先插入外键为空的记录,然后再update外键和user关联,因此外键字段要设为允许null,否则会报错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值