gpt4 book ai didi

java - 使用 spring-hibernate 的 2 个不同的数据库连接

转载 作者:行者123 更新时间:2023-12-02 11:16:11 24 4
gpt4 key购买 nike

我在单独的 .jar 中有 2 个单独的模块,它们在 2 个不同的数据库上运行。

applicationContext-hibernate.xml 文件包含 session 工厂的唯一名称,并且 web.xml 加载(应该加载?我希望如此。)两个 context.xml 文件。我还在 web.xml 中定义了自定义 sessionFactory 名称之一,如您在此处看到的:

web.xml

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/applicationContext-hibernate.xml</param-value>
</context-param>
[...]
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>customsessionFactory</param-value>
</init-param>
</filter>

因此第一个数据库连接按预期工作。但我该如何添加第二个呢?上下文中只有一个数据库 bean 可用(当然,因为未添加另一个)

我只找到了“How to handle multiple database connections using session factories with Spring and Hibernate”,但我不明白那里的答案。

最佳答案

只要您定义了具有不同ID的2个sessionFactories..您就可以传递第二个xml文件的路径,并用逗号分隔

<param-value>classpath*:/applicationContext-hibernate.xml, <<2nd file reference>></param-value>

一旦你完成了这个设置..spring将能够初始化2个sessionFactories..

- 选项 1

您需要创建 2 个 hibernateTemplate 实例(每个 session 工厂一个)并将它们都注入(inject)到您的 DAO 中,这样您就可以使用 hibernatetemplate 来处理多个 sessionFactories..

- 选项 2

在使用 HibernateDaoSupport 时,您可以使用方法 createHibernateTemplate(sessionFactoryReference) 来创建具有特定 sessionFactory 的模板对象。

关于java - 使用 spring-hibernate 的 2 个不同的数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9415171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com