【问题标题】:How to switch between db in hibernate?如何在休眠状态下切换数据库?
【发布时间】:2015-04-14 06:06:38
【问题描述】:

我的 Web 应用程序中定义了两个数据库。一种用于时尚,一种用于运动。目前我正在访问体育数据库。现在我想将其更改为时尚数据库意味着我该怎么做?我正在使用带有休眠功能的弹簧。在 spring 或 hibernate 中是否有对此的内置支持?

编辑 1:

我将有一个网页,我可以在其中选择要使用的数据库,然后更改会自动反映。有什么办法吗?

仅供参考:两个数据库将具有相同的设计。只有数据会不同

【问题讨论】:

  • 你的数据库是MySql吗?

标签: java spring hibernate spring-mvc web-applications


【解决方案1】:

Hibernate 特定的配置可能略有不同,但对于JPA,您需要配置两个EntityManagerFactories,每个数据库一个。然后,您可以根据要访问的数据库使用其中一个。

不能使用单个 EntityManagerFactory(或纯 Hibernate 等效项)来执行此操作。

【讨论】:

  • 你的设计有问题。为什么不将所有内容存储在同一个数据库中,有一个category 来区分时尚和运动。这样您就可以根据需要添加更多类别。
  • “他们”是谁?告诉“他们”,为基本相同的数据建立不同的数据库是没有意义的。
  • 要求就像每个商店(时尚和体育)将有一个单独的数据库。我们能做点什么吗?
  • 是的,两次部署同一个系统。这样你也有冗余。如果体育板块倒闭,时尚板块仍会运行。
【解决方案2】:

我认为this 是对您问题的回答。您可以简单地添加第二个 PersistenceUnit 并为您的实体管理器创建第二个工厂。
我希望这会有所帮助!
亲切的问候

【讨论】:

    【解决方案3】:

    Mysql 只有一个数据库。它有许多模式(称为数据库)。您可以通过添加前缀来查询另一个架构中的表:schema_name.table_name。

    【讨论】:

      猜你喜欢
      • 2020-09-01
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 2021-11-21
      • 2016-03-08
      • 2016-01-04
      相关资源
      最近更新 更多