我正在开发一个应用程序,它需要使用hibernate连接到两个Postgres数据库。详情如下: -
软件详细信息: - Java 1.6,Hibernate 4.1.0,Postgres 9.1。
问题场景: - 应用程序需要在运行时连接到我的localhost上的两个数据库TEDA和TEMET,并执行基本的CRUD操作(初始阶段)。
尝试的方法: -
1.将目录属性添加到hibernate映射文件的<class>
标记中。 但它不起作用。目录总是被取为null。
2.在我的Hibernate上下文中创建两个不同的数据源和会话工厂,并在不同的DAO对象中使用它们。 这种方法对我有用,我可以连接到不同的数据库。
问题陈述和参考: - 我正在寻找一种方法,其中第(1)点中提到的'目录'方法可能有效。
我搜索了堆栈溢出和其他论坛 Connect to multiple databases in Hibernate 和 what is "catalog" used in hibernate annotated class,但大多数人都讨论了使用多个数据源的方法(2)。 我还看了5.1.3节中的hibernate community documentation,第6点 提到目录属性覆盖db Url中的数据库名称,但可能是我遗漏了这里的东西。
请协助。我修改过的属性文件和hibernate映射文件如下所示。
属性文件 -
driverClassName=org.postgresql.Driver
urlDB=jdbc\:postgresql\://localhost\:5432/TEDA
username=****
password=****
dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate映射文件
<hibernate-mapping>
<class name="somepackage.PartnerPoc" catalog="TEMET" table="partner_poc">
<!-- Table specific hibernate implementation and HQL queries-->
</hibernate-mapping>
如果您需要我的更多信息,请告诉我。
提前致谢。