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

Inf*_*fos 3 hibernate native

休眠问题:

我在源代码中使用本机查询更新表"data"中的列"count".后来我想从表"data"加载所有行,但列"count"的值没有改变.

表"数据"中的行加载有:

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

知道什么是错的吗?

JB *_*zet 6

setCacheable(false)没用(这是默认值).它引用的缓存是二级缓存.在执行更新查询之前,您可能已在会话中加载了一些实体(即第一级缓存).在这种情况下,select查询将针对数据库执行,但将从会话中返回已加载的实体.因此,您需要在执行选择查询之前从会话中逐出这些实体,或者完全清除会话.

如果实体缓存在二级缓存中,那么您还必须从二级缓存中逐出它们.请参阅getCache.