带有 Spring JTA 的休眠 5

Posted

技术标签:

【中文标题】带有 Spring JTA 的休眠 5【英文标题】:Hibernate 5 with Spring JTA 【发布时间】:2016-01-12 16:34:23 【问题描述】:

我正在使用:

休眠 5.0.2 春季 4.2 Atomikos 3.9.3

官方文档说你只需要设置jtaTransactionManager,一切正常:

    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
            <property name="dataSource" ref="atomikosDataSource" />
            <property name="jtaTransactionManager" ref="jtaTransactionManager"/>
            [...]
    </bean>

不幸的是,会话没有刷新 - 没有写入发生。有什么问题?

【问题讨论】:

【参考方案1】:

问题在于 Hibernate 5 要求我们设置以下属性,而 Spring 还没有自动完成:

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    [...]
    <property name="hibernateProperties">
        <props>
            [...]
            <prop key="hibernate.transaction.coordinator_class">jta</prop>
        </props>

这为我解决了这个问题。

【讨论】:

我遇到了不同的问题。会话正在刷新,但连接从未释放。设置此属性解决了我的连接泄漏问题。 协调器类中的 jta 值是什么。我们不再需要定义 factory_class 了吗 只是想感谢 Jason B 的上述评论,并可能添加一些搜索词来帮助其他有失去连接问题的用户......我们遇到了失去连接的问题。我们运行了一个快速获得连接并且没有释放连接的工作。我们尝试了几种配置方式,直到我点击上面 Jason 的评论并解决了我们的问题。 这是为我做的。谢谢你好心的陌生人!

以上是关于带有 Spring JTA 的休眠 5的主要内容,如果未能解决你的问题,请参考以下文章

Spring使用指南 ~ 5Spring AOP 使用简介

Spring使用指南 ~ 5Spring AOP 使用简介

5Spring Boot缓存

老王读Spring IoC-5Spring IoC 小结——控制反转依赖注入

5Spring AOP的几种通知(xml)

5Spring 源码学习 ~ 默认标签 alias 标签的解析与注册