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

标签 hibernate native

hibernate 问题:

我在源代码中使用 native 查询更新表“数据”中的“计数”列。后来我想从表“数据”加载所有行,但列“计数”的值没有改变。

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

... .createQuery("来自数据") .setCacheable(假)
.list();

知道哪里出了问题吗?

最佳答案

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

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

关于hibernate - 如何强制 hibernate 从数据库加载数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6997702/

相关文章:

android - 从 JavaScript,触发 native 代码功能

java - Android JNI native C 函数调用杀死 Activity

android - 在 android native 中,Mediacodec.dequeueInputBuffer 不返回

java - 在 Java 中使用外部库

java - 如何为 EntityManagerFactory 设置 Hibernate 拦截器

javascript - 如何在 React-Native 中获取 Android 版本号? (不是 API 级别编号)

hibernate - 正确使用JPA标准API,谓词以及CriteriaQuery的where方法

java - EC2 实例上的 Web 应用程序似乎未加载 persistence.xml

java - 如何使用注解映射Set集合的simplevalue类型

hibernate - Spring MVC - Hibernate form :errors and bindingresult, jsp 不显示错误消息