首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Session 步骤

2013-02-24 
Session 方法??该属性默认为 false,当配置该属性为 true 时,Hibernate在update对象前就会生成一条select??

Session 方法
??该属性默认为 false,当配置该属性为 true 时,Hibernate在update对象前就会生成一条select
??语句来查询该对象,然后比较该对象的状态是否发生改变的情况来判断是否要生成 update 语句。
??当然对同一个对象的多次 update 操作,不会生成多条 update 语句,只有在Session清理缓存的
??时候才会根据对象状态的改变而生成 一条 SQL语句。
??应根据实际的应用情况来使用该属性,如果Java对象的属性状态不会经常发生改变,使用该数据
??可以减少不必要的 update ,这样会响应提高程序的性能,如果经常改变对象的状态还是不使用
??该属性的好。
??
?saveOrUpdate:
??该方法会根据对象的状态来对其进行不同的操作,如果方法传入的是一个临时态对象,就save。
??如果是一个游离态对象就update,如果是一个持久化对象就返回。那么,如果一个对象满足以下
??任何一个条件,那么这个对象就是一个临时态的对象。
??
??(1):Java对象的 oid 为 null
??(2):对象具有 version 属性并取值为 null
??(3):映射文件中为 <id> 元素设置了 unsaved-value 属性,并且该id与配置的属性值匹配。
????<id name="" column="" unsaved-value=0>
?????<generator class="increment"></generator>
????</id>
??(4):映射文件中为 version 属性配置了 unsaved-value ,并且该属性值与配置的值相匹配。
??(5):自定义了Hibernate 中 Interceptor 的实现类,并且该 interceptor 类的isUnsaved()
????方法返回值为 true。
??
?get load :
??这两个方法都能从数据库中查询一条记录,并返回一个持久化的对象。区别在与,如果数据库中
??没有一条记录与要查询的对象 id 对应,load 方法会抛出 ObjectNotFoundException 异常,而
??get 方法会返回 null。
?
?delete:
??该方法是删除一个与对象对应的数据库记录,如果传人是 持久化对象 就会在清理缓存时执行delete
??语句,在Session.close时从缓存中删除该对象。如果传入的是 游离态 对象,Session会先关联该
??对象,使其转换为 持久态 对象,然后执行一个delete语句。
??
??delete ("from table where id > 5"); 方法重载,删除多条记录。

??

热点排行