Hibernate - 如何从其他Web应用程序项目中读取配置?

时间:2014-02-06 10:57:12

标签: java hibernate configuration

我有一个使用Hibernate实体(带注释)的Java Web应用程序,还包含bean.xml文件中的Hibernate配置(例如方言和映射实体列表)。

我想编写一个新的简单Java应用程序(不是web-app),它将使用相同的Hibernate实体和配置,连接属性(URL,用户,密码)除外。

我需要以某种方式从web-app读取配置,并且只在运行时更改连接属性(应用程序希望将连接属性作为输入)。
我还希望应用程序能够使用该配置同时连接到多个数据库。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

你应该在你的上下文中定义一个DataSource并让Hibernate使用它,而不是直接为Hibernate指定连接参数。可以使用Tomcat的示例here。然后,我们的想法是让persistence.xml使用来自Tomcat的数据源。

我真的不知道如何使用具有相同数据源名称的两个不同上下文,但如果它不起作用,您可以在persistence.xml中有两个持久性单元,每个持久性单元指向一个数据源。然后,在您的应用程序中,使用@PersistenceContext注释加载EntityManager,指定"unitName"参数。