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

如何强制hibernate从数据库加载数据?,hibernate,native,Hibernate,Native,hibernate的问题: 我在源代码中使用本机查询更新表“data”中的列“count”。稍后我想从表“data”加载所有行,但列“count”的值没有更改 表“数据”中的行加载有: 。。。 .createQuery(“来自数据”) .setCacheable(假) .list() 知道怎么回事吗?setCacheable(false)没有用(这是默认设置)。它所指的缓存是二级缓存。在执行更新查询之前,您可能已经在会话中加载了一些实体(即一级缓存)。在这种情况下,select查询将对数据库执行

hibernate的问题:

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

表“数据”中的行加载有:

。。。 .createQuery(“来自数据”) .setCacheable(假)
.list()

知道怎么回事吗?

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

如果实体缓存在二级缓存中,则还必须将其从二级缓存中逐出。看