Hibernatet中的三种对象

 
 
临时对象,也就是不在Session里边,没有持久化标识,数据库中也没有对应的这个数据的记录,此时才能用save;
持久化对象,在Session里边的,拥有持久化标识OID,此时的数据的内容只要修改,(ID)不能变,会引起数据此对象和数据库的联动,这是Hibernate通过同步来实现的。具体怎么实现,可参考对象的生命周期,和垃圾回收有一丝关系。此时的数据只要修改就算不使用saveOrUpdate也会达到更新数据库的效果。
还有一种对象:脱管对象。此对象拥有持久化标识,也就是说数据库中有这个对象对应的数据记录,但是Session关闭了,也就是说Session的缓存中没有这个对象了。不受Session的管理了。此时如果修改了这个对象的属性,不会了生联动,也就是数据不会反映到数据库中去,除非调用saveOrUpdate()方法,并且commit后,此对象又成了持久化对象。
呵呵,看下Hibernate的三种对象类型,相信楼主会明白。 

你可能感兴趣的:(Hibernatet中的三种对象)