gpt4 book ai didi

tomcat - 为什么我的 EntityManager 正在获取过时的数据库对象

转载 作者:行者123 更新时间:2023-11-28 23:26:34 25 4
gpt4 key购买 nike

情况:

  • 应用程序 A(在 tomcat 7 上运行,网络应用程序的休息界面)
  • 应用程序 B(java 独立,计划的批处理作业将文件中的数据加载到数据库中)
  • 在每个文件有一条记录的共享控制表之间。
  • 应用 A 正确地将新记录保存在控制表中并设置适当的状态(待定),向应用 B 发出信号以开始处理。
  • Web 应用程序正确地将状态显示为待处理。
  • App B 处理批处理、加载数据并正确设置新状态(已处理)以表示加载已完成。这可以通过使用 fx Squirrel 的简单查询轻松验证。
  • 在网络应用程序中刷新页面时,状态错误地显示为待处理,而不是正确的状态:已处理。调试响应时,状态变量被分配为挂起。我的日志表明查询发生在刷新时。
  • 如果我重新启动我的 Tomcat,下一个查询将显示正确的结果,即处理后的状态。这也让我很疑惑,除了EntityManager还有什么在维护数据库对象??

问题:我只是不明白为什么 App A 继续将状态视为未决。我已经尝试了很多方法来确保 entityManager 已清除缓存(对于应用程序 A 和应用程序 B),但应用程序 A 查询最终仍会获得错误的状态。

最佳答案

@Baldurian感谢提示。我在获取的对象上添加了刷新并且它起作用了。我通过子对象获取状态。事实证明,即使 App A 在每次查询之前清空了缓存,子对象也从未被刷新。不完全是我预期的行为。

关于tomcat - 为什么我的 EntityManager 正在获取过时的数据库对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403843/

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