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