首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate中一对多联系关系 inverse和cascade属性

2012-10-25 
hibernate中一对多关联 inverse和cascade属性???? 在Hibernate中,术语inverse是反转的意思,在关联关系中,i

hibernate中一对多关联 inverse和cascade属性

???? 在Hibernate中,术语inverse是反转的意思,在关联关系中,inverse="false"为主控方,由主控方负责维护对象的关联关系。Hibernate默认inverse="false"
??? cascade 有五个选项 分别是: all ,delete ,none,save-update,delete-orphan ;
??????? all : 所有情况下均进行关联操作。
??????? none:所有情况下均不进行关联操作。这是默认值。
??????? save-update:在执行save/update/saveOrUpdate时进行关联操作。
??????? delete:在执行delete时进行关联操作。
??????? delete-orphan: 当save/update/saveOrUpdate时,相当于save-update ;当删除操作时,相当于delete ;

all的意思是save-update + delete
all-delete-orphan 的意思是当对象图中产生孤儿节点时,在数据库中删除该节点
all比较好理解,举个例子说一下all-delete-orphan:
Category与Item是一对多的关系,也就是说Category类中有个Set类型的变量items.
举个例子,现items中存两个Item, item1,item2,如果定义关系为all-delete-orphan
当items中删除掉一个item(比如用remove()方法删除item1),那么被删除的Item类实例
将变成孤儿节点,当执行category.update(),或session.flush()时
hibernate同步缓存和数据库,会把数据库中item1对应的记录删掉

热点排行