操纵持久化对象
来源:Java之道
作者:
时间:2007-10-18
点击:
方法签名:public Serializable save(Object object) throws HibernateException; 它完成以下操作:
1) 把持久化类的实例加入到缓存中,使它变为持久化对象。
2) 选用映射文件指定的标识符生成器为持久化对象分配唯一的OID。
3) 计划执行一个insert语句,把持久化对象当前的属性值组装到insert 语句(SQL DML)中。值得注意的是,save()方法并不是立即执行SQL insert语句。只有当Session清理缓存时,才会执行SQL insert语句。
另外,需要注意的是:Hibernate通过持久化对象的OID来维持它和数据库相关记录的对应关系。所以当持久化的实例处于持久化状态时,不允许程序随意修改它的OID。其实,无论java对象处于瞬时状态、持久化状态还是脱管状态,程序都不应该修改它的OID。
4.2. Session的update()方法:使一个脱管对象转变为持久化对象。
方法签名:public void update(Object object) throws HibernateException; 它完成以下操作:
1) 把脱管对象重新加入到Session缓存中,使它变为持久化对象。
2) 计划执行一个update语句。值得注意的是,Session只有在清理缓存的时候才会执行update语句,并且在执行时才会把持久化对象当前的属性值组装到update语句中。
4.3. Session的saveOrUpdate()方法:
方法签名:public void saveOrUpdate(Object object) throws HibernateException ; saveOrUpdate()方法同时包含了save()与update()方法的功能,如果传入的参数是瞬时对象,就调用save()方法;如果传入的参数是脱管对象,就调用update()方法;如果传入的参数是持久化对象,方法就直接返回。那么,saveOrUpdate()方法如果判断一个对象处于瞬时状态不是脱管状态呢?如果满足以下情况之一,Hibernate就把它作为临时对象:
1) Java对象的OID取值为null。
2) Java对象具有version属性,并且取值了null。
3)
0
最新评论共有 0 位网友发表了评论
查看所有评论
发表评论
热点关注
- Struts,Spring,Hibernate
- Hibernate初级基础教程
- struts、spring、hibernat
- Hibernate one-to-one 一
- hibernate缺点问题
- 使用NetBeans进行J2ME开发
- hibernate的配置
- hibernate(翻页)取出指定
- Session的缓存及对象的状
- 在Eclipse中使用Hibernate
- Hibernate详解
- 为何要搭配使用Struts-Spr
- 操纵持久化对象
- [导入]Hibernate 保存对象
- spring+hibernate中文乱码
- 对Hibernate配置文件中的
- Hibernate一对多双向关联
- Hibernate框架ORM的实现原
- Hibernate中Session的缓存
- 使用Hibernate的客户化映
Google Adsense

