您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何配置Spring以使JPA(休眠)和JDBC(JdbcTemplate或MyBatis)共享同一事务

如何配置Spring以使JPA(休眠)和JDBC(JdbcTemplate或MyBatis)共享同一事务

在这里找到了解决方案:我应该为JBDC模板使用哪个事务管理器?

我使用的是JpaTransactionManager,而不是DataSourceTransactionManager。 JavaDoc http://static.springsource.org/spring/docs/3.0.x/javadoc- apI/Org/springframework/orm/jpa/JpaTransactionManager.html

该事务管理器 。这允许混合访问JPA的服务和使用纯JDBC的服务(无需了解JPA)!应用程序代码需要遵循与DataSourceTransactionManager相同的简单连接查找模式(即DataSourceUtils.getConnection(javax.sql.DataSource)或通过TransactionAwareDataSourceProxy)。

在将jpaVendorAdapter添加到我的entityManagerFactory配置中之后,一切正常,JdbcTemplate查询和MyBatis都在预期的同一事务中运行。基于JavaDoc,我猜jpaDialect应该足够了,但是现在是4点,所以我现在就不尝试了:)

<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerfactorybean" id="entityManagerFactory">
    <property name="persistenceUnitName" value="persistenceUnit"/>
    <property name="dataSource" ref="dataSource"/>
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="showsql" value="true" />
            <property name="generateDdl" value="true" />
            <property name="databasePlatform" value="org.hibernate.dialect.PostgresqlDialect" />
        </bean>
    </property>
</bean>
Java 2022/1/1 18:16:34 有457人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶