栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何配置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

该事务管理器 还支持事务内的直接数据源访问(即,与同一数据源一起使用的纯JDBC代码)
。这允许混合访问JPA的服务和使用纯JDBC的服务(无需了解JPA)!应用程序代码需要遵循与DataSourceTransactionManager相同的简单连接查找模式(即DataSourceUtils.getConnection(javax.sql.DataSource)或通过TransactionAwareDataSourceProxy)。
请注意,这需要配置特定于供应商的JpaDialect。

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

<bean  id="entityManagerFactory">    <property name="persistenceUnitName" value="persistenceUnit"/>    <property name="dataSource" ref="dataSource"/>    <property name="jpaVendorAdapter">        <bean > <property name="showSql" value="true" /> <property name="generateDdl" value="true" /> <property name="databasePlatform" value="org.hibernate.dialect.PostgreSQLDialect" />        </bean>    </property></bean>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/394422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号