gpt4 book ai didi

java - Hibernate 不会注意到来自其他来源的数据库更新

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:45 24 4
gpt4 key购买 nike

我有一个由 .net 客户端和 java 网络服务组成的小型系统。

.net 客户端将一个对象插入到数据库中,然后调用网络服务。 Web 服务尝试使用 hibernate 检索此对象。第一次它工作正常,但每隔一段时间它就说没有具有给定标识符的对象。

我已经手动检查了数据库,该行确实存在! (我调试了 Web 服务并在 session 打开之前检查了该行)。

解决方案

将此添加到 hibernate 配置文件

<property name="connection.isolation">1</property>

这是我到目前为止尝试过的:

  1. 禁用二级缓存
  2. 添加了 .setCacheMode(CacheMode.REFRESH)

这是失败的代码:

Session session = Program.HibernateUtil.getSessionFactory().openSession();      
try
{
return (Alert)session.load(Alert.class, id);
} ...

最佳答案

看起来应该禁用二级缓存(与 session 工厂关联的缓存),所以我唯一可以建议的另一件事是通过调用显式清除缓存:

sessionFactory.evict(Alert.class) 

注意:阅读完整答案的评论。

关于java - Hibernate 不会注意到来自其他来源的数据库更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1271654/

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