【问题标题】:How to handle different structure of same Entity in Hibernate L2 cache with Coherence for caching如何使用 Coherence 处理 Hibernate L2 缓存中相同实体的不同结构进行缓存
【发布时间】:2013-10-10 20:03:39
【问题描述】:

我正在使用 Hibernate L2 缓存和 Coherence 在两个不同的 Web 服务中进行缓存。

场景

  • 第一个 Web 服务有一个实体类 Employee,有 5 个字段
  • 第二个 Web 服务具有相同的实体类 Employee,但具有 3 个字段。

两者都指向同一个表/模式,并且包层次结构也相同。

现在,当employeeId=1 的新请求到达第二个 Web 服务时,它会从数据库中获取值并缓存 3 列;将另外 2 个保持为空。

现在,当对employeeId=1 的请求来自第一个 Web 服务时,它通过提供 3 列直接从缓存中获取并将另外 2 列返回为 null,即使在数据库中这 2 列具有非 null 值。

有没有办法强制它从数据库中获取这些列?

已经尝试过的方法

  1. 如果我将两个 Web 服务中的列保持不变,问题就会消失,但在我的场景中这不是可接受的解决方案。
  2. 我尝试添加不同的 serialVersion,但它不起作用。
  3. 保持完全限定名称不同是可行的,但这会迫使我们增加执行手动驱逐的开销

【问题讨论】:

    标签: web-services hibernate oracle-coherence


    【解决方案1】:

    您应该能够为此使用Evolvable 接口,这将允许您将一个对象插入到网格中,该对象既可以向前兼容也可以向后兼容。您只需要确保 Second Webservice 设置的版本低于 First。

    【讨论】:

      猜你喜欢
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 2015-07-23
      相关资源
      最近更新 更多