Hibernate 级联更新和外键维护-自我总结

来源:互联网 发布:永利国际中心 商业数据 编辑:程序博客网 时间:2024/06/05 23:57

Hibernate级联更新,外键维护

主要是在做项目时,遇到的一些问题,归根结底,还是基础知识不扎实

一对多(多对一)

多的一方和一的一方如果都有可能对对方数据进行保存,更新等操作,要在多的一方去维护外键(我在idea根本打不出inverse 暂时不知道是hibernate的规定还是idea的优化),少的一方放弃维护!就像一群人可以记住一个人,一个人很难记住所有人,也有效率的关系
示例:(多)

<many to one name="xxx" class="xxx" column="xxx"/>

(少)

<set name="xxx" cascade="all" inverse="true"><!-- inverse 为 true就是放弃 默认false -->        <key column="xxx"/>        <one-to-many class="xxx"/></set>

column 指的都是外键

由于少的一方放弃了维护权利,所以在级联保存的时候,一定要设置关联,就是多的一方将少的一方set进去,不然外键值就会为空
a少b多
b.set(a)

多对多

多对多中和一对多在外键维护上相同,但要注意的是级联删除,他会将所有有关系的数据全部删除!