【发布时间】: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 值。
有没有办法强制它从数据库中获取这些列?
已经尝试过的方法
- 如果我将两个 Web 服务中的列保持不变,问题就会消失,但在我的场景中这不是可接受的解决方案。
- 我尝试添加不同的 serialVersion,但它不起作用。
- 保持完全限定名称不同是可行的,但这会迫使我们增加执行手动驱逐的开销
【问题讨论】:
标签: web-services hibernate oracle-coherence