java - 使用 Hibernate 将两个或多个应用程序连接到同一个数据库

标签 java mysql hibernate

我打算构建一个将使用 Hibernate 和 MySQL 作为其数据源的桌面应用程序。我想在多台机器上执行桌面应用程序,但我希望它们都读取/写入同一个 MySQL 数据库。这可能吗?我担心的是两个应用程序试图访问/修改相同信息时的并发问题。是否有多个 ORM 应用程序具有实时数据库同步的替代解决方案(如果不允许单个数据库)?

在 stackoverflow 上有几个与我类似的问题,但他们的回答并不令我满意。

最佳答案

您可以让多个基于 hibernate 的应用程序与同一个数据库通信。在大多数情况下,这与运行与同一个数据库对话的多个线程非常相似。

如果您的 hibernate 配置使用二级缓存,您可能会遇到最常见的问题。当hibernate配置了二级缓存时,它假定缓存与底层数据库一致。当您有一个附加到数据库的应用程序时,二级缓存可以存在于应用程序服务器的本地 RAM 中,一切都很好。

如果您有多个服务器(无论它们运行相同的应用程序还是不同的应用程序),您需要有一个由所有服务器共享的二级缓存。或者你不需要使用二级缓存。

hibernate 的二级缓存有几种分布式缓存解决方案可用 - 如果您决定走这条路,google 将帮助您研究各种选择。

同样的论点也适用于查询缓存。

关于java - 使用 Hibernate 将两个或多个应用程序连接到同一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18537675/

相关文章:

java - 在导出时合并多个 jasper 报告时如何重新计算页码?

java - hibernate 类型 yes_no 为 'J' 而不是 'Y'

java - 与 maven、jetty9、spring4 一起运行的 war 并且没有 web.xml

php - 如何从 POST 获取所有传递的参数,然后将它们插入到数据库中

php - 动态创建mysql select查询

mysql - SQL 查询查找事件是否在类别列表中

hibernate - 如何在 Hibernate 4 中禁用临时表重新创建?

java - 如何在 Java Spring 和 Hibernate 的单个事务中管理 2 个 DAO 方法?

java - 数组排序方法

java - 如何使用 JPA 和 Hibernate 修复 "ORDER BY items must appear in the select list if SELECT DISTINCT is specified"