hibernate级联的3个属性

来源:互联网 发布:不合格品的数据分析 编辑:程序博客网 时间:2024/06/05 04:45

Java:hibernate级联的3个属性

cascade(级联)

级联在编程中经常接触,写过触发器来修改或删除关联表相记录的一定会知道,触发器的作用是当 主控表信息改变时,用来保证其关联表中数据同步更新。比如一个employee存放职员信息,一个 timecard存放职员的考勤信息,当从职员表中删除一个职员时,timecard表中对应的考勤信息 已经没有意义,因为其所属的职员已不存在,如果继续留在timecard表中就成了没用的也称脏数据。 理想的做法是在删除职员信息的同时将该职员信息对应的考勤信息也删除。在hibernate中如果要达到这个 效果只需要设置cascade属性值即可。当然是否进行级联关系要根据实际情况慎重考虑。

 

 


inverse(反转)
表与表之间的关联,我们通常将主动发起关联请求的表称为主动表,被关联的表成为被动表,hibernate中 将此概念冠以在表所对应的对象上,因此将主动发起关联请求的对象称为主动对象或主控对象,被关联的对象 称为被动对象或被控对象。hibernate由主动对象维护关联关系,在实际中经常碰到一个对象的关联角色并不 那么明确,如双向关联,这时inverse值用来标明由谁来维护关联关系。设为true时反转控制角色,即由该 属性关联的对象维护关联关系。

 

 


 Lazy Loading(延时装载)
延时装载主要是从性能方面的考虑,对于 “select coulmn1 from table”和“select * from table”语句 的性能比较,相信大家不会有异议,第一条的执行性能要高于第二条,当然这个表中字段存储的信息应该能充分 体现出优越性为前提,比如说一个employee表中存放有,职员姓名、年龄、照片等,如果只需要查看姓名和年龄, 那么照片信息就不应该附带出来。表与表之间的关联也应如此,如果不需要用到关联表中的数据就不应该去进行关 联操作,或在需要的时候才启动关联操作。让数据在最恰当的时候才出现,这就是延时装载。

原创粉丝点击