码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate inverse属性与cascade属性

时间:2015-06-04 22:45:56      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:hibernate   inverse   cascade   

理解:

inverse属性为false的那一端,拥有管理关系维护的权利

cascade属性指级联,说的通俗点,在cascade那端指定的操作,会影响到所关联的对象


举个例子:

班级和学生的关系是一对多

班级class类包含id,名称和学生的Set集合

学生student类包含id,姓名和班级的id(外键)


cascade属性:学生是依赖班级存在的,班级不存在,那么学生也不存在。也就是说,删除班级的同时,学生也就得删除,而不能反过来。一的那端删除时,多的那方已经没有意义了;而多的那端删除时,并不能代表一的那端没有意义。有点绕。那么属性设置是,class 设置“all",student设置“save-update”,那样,对class的操作都能影响student,对student的操作之后保存和更新才影响class。


inverse属性:这个属性是具有管理和维护权利的,在一对多的关系中,如果设置班级有这个权利,那么班级会管理维护学生集合,当保存班级时,就会更新所有学生集合里的外键属性,这不是我们想要的,当数量很多时,性能不好。而如果把这个权利交给学生时,保存班级时,就不会更新学生集合里的属性,这个外键可以由我们自己手动设置。通俗点说就是,班级如果选择学生,那么会修改学生的班级属性;如果反过来,学生选择班级,学生里的班级属性已经设置了,不用班级去操心了,世界清净了。


以上都是我个人的理解,网上看到的经验是:inverse属性一般是由多端维护,多对多的情况选择一端维护,不要两端都维护,cascade属性一般是一端设置“all”,多端设置“save-update”。


ok,世界清净了。


Hibernate inverse属性与cascade属性

标签:hibernate   inverse   cascade   

原文地址:http://blog.csdn.net/noaboutfengyue/article/details/46367575

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!