zoukankan      html  css  js  c++  java
  • hibernate中commit(),flush()、refresh()、clear()操作的含义

    1,commit()是提交事物,默认是先执行flush,事物提交成功后是不能进行回滚的.

    2,flush()是刷新缓存(有些资料说是清楚缓存是不对的,数据仍然在缓存中),将缓存中的数据刷到数据库,使数据库中数据和缓存保持一致。为了保持一致,则有可能发送对应的sql语句(若缓存中的对象和数据库中的对象一样则不发送sql语句)。执行flush()方法以后,是可以回滚事务的。

    3、注意:在未提交事务或显示的调用session.flush()方法之前,也有可能会进行flush()操作。

    1)在执行HQL或QBC查询,会先进行flush()操作以得到数据表的最新的记录。

    2)若记录的id是由底层数据库使用自增的方式生成的,则在save()方法后,就会立即发送insert语句,因为save()方法后必须保证对象的id是存在的。

    4,refresh():会强制发送select语句,以使session缓存中对象的状态和数据表中对应的记录保持一致。该方法的有效性需要配置事务的隔离级别为read commited(读已提交),在hibernate.cfg.xml文件中配置<property name="connection.isolation">2</property>

    clear():清理缓存。

  • 相关阅读:
    Struts2第一个入门案例
    Jquery form表单提交
    innerText和innerHTML
    FusionCharts Free 甘特图
    NVelocity模板引擎
    脚踏实地学C#5-扩展方法
    脚踏实地学C#4-静态类
    MySql服务无法启动
    头像截取
    脚踏实地学C#3-装箱和拆箱
  • 原文地址:https://www.cnblogs.com/ylsx/p/13272987.html
Copyright © 2011-2022 走看看