【发布时间】:2010-07-13 16:26:47
【问题描述】:
是否可以在休眠和休眠解决方案之间共享二级缓存?我有一个环境,其中有运行 .net 的服务器和运行 java 的服务器都访问同一个数据库。
他们访问的数据有一些重叠,因此共享二级缓存是可取的。有可能吗?
如果这不可能,其他人提出了哪些解决方案?
【问题讨论】:
标签: java .net nhibernate hibernate orm
是否可以在休眠和休眠解决方案之间共享二级缓存?我有一个环境,其中有运行 .net 的服务器和运行 java 的服务器都访问同一个数据库。
他们访问的数据有一些重叠,因此共享二级缓存是可取的。有可能吗?
如果这不可能,其他人提出了哪些解决方案?
【问题讨论】:
标签: java .net nhibernate hibernate orm
他们访问的数据有一些重叠,因此共享二级缓存是可取的。有可能吗?
这需要(这很可能过于简单化了):
这听起来可行,但是:
如果这不可能,其他人提出了哪些解决方案?
我从来没有这样做过,但是如果我们谈论的是读写缓存,并且如果您使用两个单独的缓存,您将不得不从 .Net 端使给定的 Java 缓存区域无效,反之亦然。您必须编写代码来处理它。
【讨论】:
正如 Pascal 所说,共享第二个缓存在技术上是不可能的。
但是,您可以从不同的角度考虑这一点。
两个应用程序不太可能读取和写入相同的数据。因此,您可以实现缓存失效服务(使用您选择的通信堆栈),而不是共享缓存。
例子:
Customer 数据并写入 Invoice 数据Invoice 数据并写入 Customer 数据Customer 数据,应用程序 B 缓存 Invoice 数据例如,当应用程序 A 修改发票时,它会向应用程序 B 发送一条消息,并告诉它从缓存中删除发票。
您还可以逐出整个实体类型、集合和区域。
【讨论】: