Ale*_*lex 3 java mysql eclipse hibernate
我正在创建一个数据库环境,我想在其中拆分多个不同模式中的数据以供不同的用户组使用。但是,这些数据库之一应该共享给所有人,因为它包含公共实体。
假设数据库:
我有三个不同的项目:
我正在尝试从项目/模式(2,“A”)和(3,“B”)访问轮子(项目 1)
第一个问题:可以吗?第二:我该怎么做?
hibernate.cfg.xml 在项目 2 中配置为
<property name="hibernate.connection.url">jdbc:mysql://99.999.999.99:3306/DB2</property>
Run Code Online (Sandbox Code Playgroud)
这必然必须限制与 DB2 的所有连接,或者还有另一种方法来添加新连接或使用 3306 端口中的所有数据库,或者至少是 DB1?
从项目 2 中的项目 1映射实体似乎也没有成功,例如:
<mapping class="com.company.project1.Wheels"
package="com.company.project1.Wheels" resource="com/company/project1/Wheels.hbm.xml"/>
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助!
您可以使用@Table(catalog="")指定它们所属的数据库,然后也可以跨数据库建立关系。
在您的情况下Wheel,使用目录属性映射到 DB1、CarDB2 和MotorCycleDB3。
我已将此解决方案与 MySQL 和 MSSQL 一起使用,并且运行良好。唯一的约束是所有三个数据库都必须在同一个数据库服务器中,并且用于访问数据库的用户应该对所有数据库具有适当的权限。
由于此解决方案仅在所有查询中针对表添加架构名称。