sgg_7_session.update()

时间:2019-05-09
本文章向大家介绍sgg_7_session.update(),主要包括sgg_7_session.update()使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、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