当前位置:   article > 正文

flush()方法

op.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();

转载于:https://www.cnblogs.com/jinzhengquan/archive/2011/02/19/1958602.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/810512
推荐阅读
相关标签
  

闽ICP备14008679号