如何在Hibernate二级缓存中处理同一实体的不同结构,使用Coherence进行缓存

时间:2013-10-10 20:03:40

标签: web-services hibernate oracle-coherence

我正在使用Hherenate L2缓存和Coherence在两个不同的webservice中进行缓存。

方案

第一个Web服务有一个实体级员工 5字段
第二个Web服务 3字段具有相同的实体级员工

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

现在,当 employeeId = 1 的新请求进入第二个Web服务时,它从数据库中获取并缓存3列;将其他2保留为空。

现在,当 employeeId = 1 的请求到达 First Webservice 时,它会直接通过提供3列从缓存中获取,并将另外2个返回为null。尽管在数据库中有2列有价值。

有没有办法可以强制它从数据库中获取thes列?

方法已尝试

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

1 个答案:

答案 0 :(得分:0)

您应该能够使用Evolvable界面,这样您就可以将对象插入到向前兼容的网格中。您只需确保Second Webservice设置的版本低于First。