一、session的update()方法
session的update()方法使一个游离对象转变为持久化对象,并且计划执行一条update语句。
若希望session仅当修改了对象属性事才执行update()语句,可以把映射文件中<class>元素的select-before-update设为true,该属性的默认值为false
当update()方法关联一个游离对象时,如果在session的缓存中已经存在相同OID的持久化对象,会抛出异常
当update()方法关联一个游离对象时,如果在数据库中不存在相应的记录,也会抛出异常。
若更新一个持久化对象,不需要显示的调用update方法,因为在调用Transaction的commit()方法时,会先执行session的flush()方法。
更新一个游离对象,需要显式的调用session的update方法,可以把一个游离对象变为持久化对象。
二、session的saveOrUpadate()方法
session的saveOrUpate()方法同时包含了sava()与update()方法的功能
判定对象为临时对象的标准
java对象的OID为null
映射文件中<id>设置了unsaved-value属性,并且java对象的OID取值与这个unsaved-value属性值匹配。
三、了解session的merge()方法
四、session的delete()方法
可以通过设置hibernate.cfg.xml配置文件hibernate.use_indentifier_rollback为true,使删除对象后,把其OID置为null。
五、session的evict()
从session缓存中把指定的持久化对象移除。
六、在hibernate中配置c3p0数据源
6.1导入jar包
hibernate-release-4.2.4.Final\lib\optional\c3p0\*.jar