Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 两个独立的web应用程序如何与Hibernate共享二级缓存?_Java_Web Applications_Distributed Caching - Fatal编程技术网

Java 两个独立的web应用程序如何与Hibernate共享二级缓存?

Java 两个独立的web应用程序如何与Hibernate共享二级缓存?,java,web-applications,distributed-caching,Java,Web Applications,Distributed Caching,我有两个web应用程序 我想让它通过Hibernate访问同一个共享数据库,并在每个数据库中使用二级缓存。但是我希望第二个web应用程序能够看到第一个web应用程序的修改 我不确定是否理解,但Hazelcast是否能满足我的需要 使用该解决方案,我是否能够像以前一样使用Spring管理事务 谢谢。就这么做吧。应用程序对数据库所做的任何更改都应该对读取该数据库的任何其他应用程序可见。一旦提交了更改,它应该在硬盘上,从硬盘读取数据库的任何其他人都应该看到它。为什么您认为不能有两个单独的会话工厂?这不

我有两个web应用程序

我想让它通过Hibernate访问同一个共享数据库,并在每个数据库中使用二级缓存。但是我希望第二个web应用程序能够看到第一个web应用程序的修改

我不确定是否理解,但Hazelcast是否能满足我的需要

使用该解决方案,我是否能够像以前一样使用Spring管理事务


谢谢。

就这么做吧。应用程序对数据库所做的任何更改都应该对读取该数据库的任何其他应用程序可见。一旦提交了更改,它应该在硬盘上,从硬盘读取数据库的任何其他人都应该看到它。

为什么您认为不能有两个单独的会话工厂?这不会导致任何问题,除非您使用非群集二级缓存来存储读写实体。

我认为您使这变得比需要的更复杂。只需使用select语句将两个web应用程序都设置为拉入数据,并且每当您修改其中一个页面上的数据(使用更新)时,都要进行回发

这样,无论哪个页面进行了更改,页面都会发回,当另一个页面加载更改时,更改已经存在。如果您使用ajax来避免回发,这也应该起作用

所以我不能使用两个独立的Hibernate会话工厂

为什么不呢?除非您已将设置为
手动
,否则应该没有问题。典型的设置是
COMMIT
AUTO

任何进一步的问题都可能使用。如果您的应用服务器没有JTA环境,请避免这种情况


PS:spring可以配置hibernate设置,但也可以通过任何其他方式进行。

对不起,我误解了您的答案。你说“除非你已经设定了……”(我猜你的意思是“除非你设定了……”),我读到了“除了你必须设置…)事实上,如果我想使用缓存,我不能使用两个独立的会话工厂,对吗?首先,检查你是否需要二级缓存!没有你就没有问题。是否存在性能问题?缓存是否是最佳解决方案?不要在黑暗中进行优化。这是一个具有前端和后端网站的电子商务解决方案。我需要缓存对产品的请求,例如,我不想每次都请求数据库。在这种情况下,除了缓存之外,还有什么其他解决方案?