当前位置: 首页 > 面试题库 >

Hibernate:在同一应用程序中使用两个不同的数据库模式

戚均
2023-03-14
问题内容

语境

我正在创建一个数据库环境,在该环境中,我想以几种不同的模式拆分数据以用于不同的用户组。但是,由于其中一个数据库包含公共实体,因此应该共享给所有人。

假设数据库:

  • DB1-通用实体;
    • 车轮实体
  • DB2-组“ A”;
    • 汽车实体
  • DB3-组“ B”;
    • 摩托车实体

我有三个不同的项目:

  • 项目1:
    • 车轮豆
  • 专案2:
    • 汽车制造商
  • 专案3:
    • 摩托车构造者

问题

我正在尝试从项目/方案(2,“ A”)和(3,“ B”)访问轮子(Project 1)

第一个问题:可能吗?第二:我该怎么做?

hibernate.cfg.xml 在项目2中配置为

<property name="hibernate.connection.url">jdbc:mysql://99.999.999.99:3306/DB2</property>

这必然必须限制所有与DB2的连接,或者还有另一种添加新连接或与3306端口中的所有数据库或至少与DB1一起使用的方法?

项目2中的 project1映射实体似乎也没有成功,例如:

<mapping class="com.company.project1.Wheels"
        package="com.company.project1.Wheels" resource="com/company/project1/Wheels.hbm.xml"/>

组态

  • solar eclipse
  • MySQL 5.5
  • Hibernate 3.0(通过xml而不是注释进行映射)
  • win7

感谢您的帮助!


问题答案:

您可以@Table(catalog="")用来指定它们所属的数据库,然后还可以跨数据库建立关系。

您的情况下Wheel,使用商品目录属性映射到DB1,CarDB2和MotorCycleDB3。

我已经将此解决方案与MySQL和MSSQL一起使用,并且工作正常。唯一的限制是,这三个数据库必须位于同一数据库服务器中,并且用于访问数据库的用户应具有对所有数据库的适当权限。

由于此解决方案仅在所有查询中针对表添加架构名称。



 类似资料:
  • 问题内容: 语境 我正在创建一个数据库环境,在该环境中,我想以几种不同的模式拆分数据以用于不同的用户组。虽然,由于其中包含公共实体,所以应该将这些数据库之一共享给所有人。 假设数据库: DB1-通用实体; 车轮实体 DB2-组“ A”; 汽车实体 DB3-组“ B”; 摩托车实体 我有三个不同的项目: 项目1: 车轮豆 专案2: 汽车制造商 专案3: 摩托车构造者 问题 我正在尝试从项目/方案(2

  • 问题内容: 我正在使用Flamingo功能区和Substance Office 2007外观。 当然,现在 每个 控件都具有这种外观,即使对话框上也是如此。 我想要的是Office 2007中的功能,功能区具有Office 2007的外观,但其他控件保留其本机Vista / XP的外观。 是否可以为某些控件分配不同的外观?也许使用某种链接或代理外观? 问题答案: 我刚刚发现:由于物质5.0的SKI

  • 有两个应用程序:一个是使用Spring Boot-1.5.18.发布版本,它的hibernate版本为5.0.12.final :https://search.maven.org/artifact/org.springframework.boot/spring-boot-dependencies/1.5.18.release/pom 而在第一次应用程序中不需要分配大小。 数据库序列是用“增量1”创

  • 我正在努力学习vue。因此,我制作了一个小应用程序,可以显示来自API的新闻文章,并在另一个视图中允许用户登录到另一台服务器。 为此,我使用Axios。我知道我在某个时候让它工作得很好,但是今天当我开始我的项目时,让两个API同时工作是不可能的。 这是我的登录服务: 这是我的新闻服务: 这两个服务都位于不同的JS文件中,并导入到不同的vue文件中,但现在它们似乎无法共存,并且总是有一个服务覆盖另一

  • 我们正在使用Firebase实时数据库在flutter中开发一个应用程序,为不同的客户提供多种服务。我想为使用相同Firebase项目的每个客户拥有不同的数据库。由于Firebase在同一个项目中支持多个数据库,我相信可以使用Firebase Datase插件实现。 我试图设置对辅助数据库的引用,但我找不到一个稳定的突击队来更改此数据库的实例。如果您使用的是Java或其他使用Firebase的语言