zoukankan      html  css  js  c++  java
  • flush()方法

    一,session在什么情况下清理缓存

    1,默认情况下,当应用程序提交事务,如commit()

    2,当我们显示调用flush的时候

    3,在执行某些查询的时候,如:iterate

    session.flush()首先清理缓存,然后执行sql

    实例代码:

    //因为user的主键生成策略是uuid,当session调用save()方法后,只是将user纳入了session的管理不会发出insert语句,但是user的id已经生成,session中existsInDatabase状态为false

    //因为user的主键生成策略是native,所以调用session.save后,将执行insert语句,返回id,并将user纳入session的管理下,并修改session中existsInDatabase状态为true,如果数据库的隔离级别设置为未提交读,那么可以save保存后的数据

    session.save(user);

    //调用flusth,hibernate会清理缓存执行sql,如果数据库的隔离级别使之为未提交读,那么可以看到flush过的数据

    session.flush();

    //将对象从session的map中逐出

    session.evict(user);

    //提交事务,默认情况下commit操作会首先执行flush来清理缓存,所以不用显示的调用flush,commit后数据无法回滚

    session.getTransaction.commit();

  • 相关阅读:
    机器人能都返回原点
    解码字母
    学习W3C
    字符重排
    字符串相加
    ARC107F Sum of Abs
    6830. 【2020.10.25提高组模拟】排列
    6828. 【2020.10.25提高组模拟】幂
    CF1434D Roads and Ramen
    2020 计蒜之道 线上决赛 C 攀登山峰
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1958602.html
Copyright © 2011-2022 走看看