java - 如何在 Spring 中定义多个 sessionfactory 实例?

标签 java hibernate spring

我想在一个 spring 应用程序中有多个 Hibernate SessionFactories,除了 DataSource 之外,它们都具有相同的配置。理想情况下,我会按名称获取特定的 SessionFactory。我需要能够根据运行时状态执行此操作,并且无法确定在应用程序启动时我需要哪些 session 工厂。基本上,我需要一个 SessionFactoryTemplate 或类似的东西。

这可能吗?我该怎么做?

最佳答案

您可以定义一个抽象 bean 并使用 bean 继承。这意味着您将拥有一个用作模板的 bean 定义,并且您可能有多个 bean 只是复制父 bean 设置的属性。

这是一个例子:

<bean id="abstractSessionFactory" abstract="true"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="mappingResources">
      <list>
        <value>product.hbm.xml</value>
      </list>
    </property>
    <property name="hibernateProperties">
      <value>
        hibernate.dialect=org.hibernate.dialect.HSQLDialect
      </value>
    </property>
</bean>

<bean id="mySessionFactory" parent="abstractSessionFactory">
    <property name="dataSource" ref="myDataSource"/>
    ...
</bean>

<bean id="mySessionFactory2" parent="abstractSessionFactory">
    <property name="dataSource" ref="myDataSource2"/>
    ...
</bean>

使用属性 'abstract' 可以确保 bean 不会被实例化,它将仅用作模板。

更多信息在这里:link text

关于java - 如何在 Spring 中定义多个 sessionfactory 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/794496/

相关文章:

java - 为什么在 spring 3.1 和 hibernate 4 中找不到当前线程异常的这个 No Session

java - 如何在 javafx 2.1 中的后台线程中运行查询

java - Rx Java mergeDelayError 未按预期工作

java - Spring MVC,从服务层的安全上下文中获取主体

spring - 如何通过 HTTPS 通过 Maven Tomcat7 运行 Spring 应用程序?

java - 我可以将 code_swarm 配置为只创建 png 文件而不显示吗?

java - 关闭 hibernate 日志到控制台

java - 如何加入 Hibernate/JPA 2.0 CriteriaQuery 中的 JOINED 子类?

java - 将 JSON 数组发布到 Spring Boot RestController 中

java - 错误 : AnnotationException: mappedBy reference an unknown target entity property