首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制hibernate从数据库加载数据?

问如何强制hibernate从数据库加载数据?
EN

Stack Overflow用户
提问于 2011-08-09 22:23:29
回答 1查看 3.4K关注 0票数 3

hibernate的问题:

我用源代码中的原生查询更新表"data“中的"count”列。稍后,我想从表"data“加载所有行,但是列"count”的值没有改变。

表"data“中的行用以下命令加载:

... .createQuery("from data") .setCacheable(false)

.list();

知道出什么问题了吗?

EN

回答 1

Stack Overflow用户

发布于 2011-08-09 22:34:31

setCacheable(false)没有用处(这是默认设置)。它引用的缓存是二级缓存。在执行更新查询之前,您可能已经在会话中加载了一些实体(即一级缓存)。在这种情况下,select查询将针对数据库执行,但将从会话中返回已加载的实体。因此,您需要在执行select查询之前从会话中evict这些实体,或者完全clear会话。

如果实体被缓存在二级缓存中,那么您还必须将它们从二级缓存中逐出。参见getCache。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6997702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档