hibernate的三种状态(儿)

第五讲:hibernate的三种状态

 

瞬时:bean对象与session,与数据库无关。在session对象的save方法保存之前。

持久状态(托管):bean对象与session有关,数据库中有对应的记录。在save的保存方法之后,在session对象的关变之前。Session知道对象的变化,此时对象的变化即使在session保存对象之后session也可以把数据的变化保存在数据库中。(s.save--àstr.commit-----s.close)

在这个过程中对象变化的话即为更新upddate(产生两条语句insert 和update语句)

既update更新的对象处于持久状态中。

当对象不知道处于是处于瞬时状态还是托管状态就用SaveOrupdate状态,让hibernate自己去判断是处于瞬时状态还是托管状态(hibernate会根据对象的id是否有值去判断是保存还是更新。若是有值则更新若是没有则保存  ,id为整形的则判断id是否为0。判断是保存还是更新。String 类型的则判断是否为空进行判断是更新还是保存

持久状态:session对象关闭,与数据库无关。与session在session对关闭之后象(对应的对象ID有值)。

 

 

 

 

 

Un-save主键默认sesssion为保存的值当id的值与Un-save的声明的值相等的时候就会直接进行不存在saveOrUpdate方法的时候就会直接进行保存。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。