问题描述
hibernate 每个线程都有自己的session, session里面都有自己的一级缓存,而且不能取消。这样的话,如果多线程对同一张表做操作。 会出现数据不一致的情况。。比如 一个线程update了一条数据。另一个线程缓存的数据就不是最新数据。如果用load get之类的 方法 就会得到非最新数据。造成数据混乱。hibernate是不是不能提供这方面的保证。只有程序控制吗?大家碰到过这样的问题吗。一般都如何考虑的? 问题补充:xiaogui363 写道
解决方案
在查询前,手动关闭session,然后在getSession.createQuery(),这样去查询的话session的缓存就被清空了。
解决方案二:
试了试成功了没?
时间: 2024-09-20 00:14:13