欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring整合Hibernate事务注解使用的坑-配置事务管理器

程序员文章站 2022-07-04 23:43:38
...

如果需要是与Hibernate整合,那么,配置事务管理器的时候,需要用到Hibernate的事务管理器。同时必须的配置属性是sessionFactory。


错误

一开始我使用Spring提供的事务管理器

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
</bean>

但是就报错:

javax.persistence.TransactionRequiredException: no transaction is in progress

正确

这一点我花了很久久才注意到。整合Hibernate的时候如下配置才能运行成功。

   <!--配置事务管理器-->
    <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <!--配置spring声明式注解事务-->
    <tx:annotation-driven transaction-manager="transactionManager"/>