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