gpt4 book ai didi

java - Hibernate 查询不返回新数据

转载 作者:行者123 更新时间:2023-11-29 16:36:15 25 4
gpt4 key购买 nike

我有一个 Controller 如下:

SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Transaction tx = null;
Session session = sessionFactory.openSession();
session.flush();
tx=session.beginTransaction();

List<Plane> allPlanes = session.createQuery("from Planes").list();
tx.commit();


session.close();

当我通过 MySqlWorkBench GUI 应用程序在表中添加新记录并再次点击此 Controller 时,它不会获取最新记录。只有重新启动tomcat后,新记录才会被拾取。我尝试在 hibernate 配置文件中设置各种缓存选项,但似乎没有什么区别。如何确保无论数据在何处更新,此查询始终返回数据库中数据的最新副本?

最佳答案

您无法在 JPA 之外对数据库进行更改并期望 JPA 知道它。

有一种方法可以让 hibernate 重置,但您必须触发数据库,​​然后通过网络发送消息,或手动调用函数。

在我的系统上,当我需要在幕后直接更新数据库而无需重新启动 JVM 时,我可以从菜单中调用手动重置。

em.getEntityManagerFactory().getCache().evictAll();

关于java - Hibernate 查询不返回新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53586677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com