spring mvc 同时集成 mybatis 和 jpa ,事务是否一致

由于种种原因,项目中需要同时继承mybatis,和 jpa,有个疑问是 使用mybatis 的service 调用
jpa 实现的 service ,事务是否会生效,即 两个service 是否用的同一个事物,事务管理使用spring 的声明式事务,
使用 @Transactional 注解。

0

1个回答

可以,jpa和mybatis分别有自己的事务实现,但是再spring环境下jpa的事务会覆盖mybatis的事务
,单数据源情况下,完全可以兼容两者的事务,但是如果你的项目是多数据源,并且扫包不规范的情况下,事务很有可能就失效了,比如同一个mapper被多个数据源扫描到了,这是你的事务管理器上只能标一个名字,虽然你是同一个操作,但是不在被单数据源的事务管理器处理,会导致mybatis事务不生效的问题。所以我不建议采用一个方法中既写mybatis又写jpa 除非你能保证你的项目只是单数据源的。

0
qq_37616173
cyd_My 回复asdhkk: 但是如果你的项目是多数据源的情况下,扫包不规范的情况下比如一个mapper被多个数据源扫描,那么主数据源的事务就不再生效了,所以为了方便还是不要在一个方法中既使用jpa又使用mybatis做操作cud操作,但是单数据源无所谓。
4 个月之前 回复
qq_37616173
cyd_My 回复asdhkk: 我刚才试了一下确实可以兼容,mybatis的事务会被jpa覆盖,如果@Transactional声明mybatis的事务名,会失败,但是@Transactional声明jpa的事务名不会失败。
4 个月之前 回复
asdhkk
asdhkk 在别处看到说:JpaTransactionManager可以同时管理JPA和MyBatis事务
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring集成jpa和mybatis,及spring事务处理,jpa的生命周期
1、spring集成jpa      getDataSource-->entityManagerFactory-->transactionManager      映射为      数据源-->实体管理工厂-->事务管理器      实体是有生命周期状态的 2、spring集成mybatis     getDataSource-->sqlSessionFact...
一个项目同时使用配置文件整合spring-jpa和mybatis
来自:https://www.cnblogs.com/modprobe/p/5675809.html注意事项: 一个项目若要同时使用spring-jpa和mybatis需要分别定义两个dao层来分别操作数据库,否则直接报错.另外:关于事务的管理, 由于mybatis和jpa分别有事务管理, 以上案例中对于以下两个事务管理id一致.<!-- (事务管理)transaction manager,...
springboot整合mybatis整合jpa使用entityManger
springboot整合mybatis整合jpa使用entityManger整合readis以及微信支付和支付宝支付
springboot同时整合JPA和mybatis的demo
这个demo同时整合了springboot+JPA+mybatis这个两个orm框架。
JPA事务和hibernate混合事务研究<一>
混合事务用起来确实是比较麻烦的事情,我也百度了下,基本上只看见了关于jdbc事务和jpa事务(hibernate事务)混合事务的介绍,以及用法,但是就是没有看到jpa事务和hibernate混合事务的用法说明的博客或者文章。关于JPA和hibernate我就不详细介绍了,理论上来说JPA规范,hibernate是其实现,混合起来使用应该没有那么麻烦,但是混合起来是个什么样的效果呢。下
oracle+jpa和mysql+mybatis的混合多数据源配置例子
最近在学习的时候看到了多数据源这一章,回想以前做的所有项目用到了MySQL,Oracle,Mybatis,SpringJpa等等。 这里不评论各自的优缺点,也不推荐该使用哪一种。大部分的文章都是单一技术配置多个库,这几样混合使用的比较少。 经过多次尝试和资料参考后终于能出来结果了,这里记录一下。 主体技术框架如下: spring boot 2.0,thymeleaf,Oracle 12c ...
SpringBoot2学习笔记(四)JPA与Mybatis
访问数据库的方式一般来说有两种,一种以Java Entity为中心,将实体和实体关系对应到数据库的表和表关系,例如Hibernate框架(Spring Data JPA由此实现);另一种以原生SQL为中心,更加灵活便捷,例如Mybatis。 本篇要讲数据源配置,接着重点介绍下Spring Data JPA技术,最后讲下Spring Boot集成Mybatis。 一、配置Sprin...
springmvc(五)集成阿里 druid数据库连接池和事务等配置,集成mybatis
感谢我们的小领导,他在研究,我们在套用,他走了以后再没有完善过,一直沿用至今。如果看这里的朋友有什么需要集成进来的,不吝赐教,谢谢各位了。     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns:aop="http://www.springframework.org/schema/aop"     x
Spring4集成JPA和MyBatis3简单例子
Spring4集成JPA和MyBatis3简单例子
springboot项目底层集成jpa规范与mybatis
    你我共知,jpa规范是基于hibernate的,对于单表操作的时候是非常的方便,但是对于多表操作的时候未免有点力不从心,于是在闲暇之余,自己做了一个小小的测试,集成mybatis。当然集成jpa规范在上篇博客中已经有了很详细的解说。如果有想要了解的请看我的上篇博客。    这篇博客的前提是建立在上篇博客的,于是那些个数据库的配置我也就不强调了。    第一步,引入mybatis的相关jar...
九、同时使用jdbcTemplate和hibernate时,事务控制
&amp;lt;!--Hibernate TransactionManager--&amp;gt;    &amp;lt;bean id=&quot;transactionManager&quot; class=&quot;org.springframework.orm.hibernate3.HibernateTransactionManager&quot;&amp;gt;        &amp;lt;property name=&quot;sessionFactory&quot; ref...
spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码
spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码。代码拿过去即可集成使用。
Vertx与Spring配合完成DML操作
前言 vertx相较于Tomcat不同之处 引用oschina上关于vertx的文章,感觉他说得非常明白,不在这里过多讨论,这里我简单说明下如何在vertx和spring配合完成基础任务。   服务启动: public static void main( String[] args ) { ApplicationContext context = new Ann...
使用Spring Boot +JPA+mybatis快速启动一个web项目
使用Spring Boot +JPA+mybatis快速启动一个web项目新手的练手项目,欢迎指出不足之处;本次demo使用jpa的自动建表功能,加上spring boot 的强大集成能力快速搭建一个web项目,mybatis在此中的主要作用是为了实现动态sql语句的查询首先通过STS创建一个spring boot项目配置文件pom.xml<?xml version="1.0" encoding="
springboot 整合mybatis 进行数据库操作(JPA)
上一篇----IntelliJ IDEA 搭建springboot 上一篇成功搭建springboot项目之后,我们来实现springboot 整合mybatis ,操作数据库。 首先创建一个ademo项目,我先把我的项目结构放在这里,进行解释 PersonController  是接受请求并使用对应方法来处理请求操作; PersonRepository 这里使用了JPA接口,JPA封装了...
spring springmvc mybatis 整合批量操作,批量更新,批量插入
1.批量插入 INSERT INTO CISHAN_SUBSIDY_ACCOUNT_RECHARGE_MONTH(BATCH_NO,ACCOUNT_ID,USER_ID, NAME,IDNO,MOBILE,MONTH_AMOUNT,CISHAN_CHANNEL_ID,CISHAN_ORG_PROVINCE,CISHAN_ORG_CITY, CI
SpringCloud SpringBoot mybatis 分布式微服务(九)Spring Boot中使用Spring-data-jpa让数据访问更简单
在上一篇Spring中使用JdbcTemplate访问数据库 中介绍了一种基本的数据访问方式,结合构建RESTful API和使用Thymeleaf模板引擎渲染Web视图的内容就已经可以完成App服务端和Web站点的开发任务了。然而,在实际开发过程中,对数据库的操作无非就“增删改查”。就最为普遍的单表操作而言,除了表和字段不同外,语句都是类似的,开发人员需要写大量类似而枯燥的语句来完成业务逻辑。为...
第二篇:Spring Boot整合JPA、事务处理及AOP的使用
(一)Spring Boot整合JPA的具体步骤 搭建项目所需环境: ntelliJ IDEA 2018.1.3 x64 apache-maven-3.5.0 JDK1.8或JDK1.8以上,否则Spring Boot运行报错 项目文件结构图: 第一步,添加依赖 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;!--引入jpa作用:操作数据库--&amp;amp;amp;amp;amp;
SpringBoot配置JPA和mybatis双数据源
JPA配置为spring.datasource前缀,mybatis为spring.datasource.eps开头 1.创建DataSourceConfig配置类,来定义数据源 其实 @Primary表示默认,如果使用了JPA则默认使用该数据源 package com.xinyuan.core.config; import org.springframework.beans.fa...
Springboot+Atomikos+Jpa+Mysql实现JTA分布式事务
myeclipse开发,导入即可用,可以参阅http://www.cnblogs.com/shamo89/p/7326718.html
mybatis + springMVC 多数据源,及事务配置
之前写过一种多数据源配置的方式,但是那种方式对代码入侵性比较大,详情请查阅 mybatis + spring 多数据源跨库查询 最近在做 springMVC 搭建时,更改了新的实现,并且提供多数据源中单个数据源事务的支持 下面直接放完整代码: web.xml 配置 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-in
springMVC+mybatis事务管理配置
springMVC+mybatis整合框架的事务管理方式有两种:一种是声明式事务管理策略,另一种是编程式事务管理策略。 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后
Spring boot+Atomikos+JTA+Hibernate+mybatis+MySQL实现分布式事务+多数据源
springboot+Atomikos+jpa+mysql的JTA分布式事务实现,本案例涉及到2个数据库,预期结果,在同一个事务中,两个库的状态一致
使用全注解配置Spring MVC+Spring +MyBatis框架,带事务配置。
是不是一个比较疯狂的想法。 首先我们配置Spring MVC的配置类,为了方便你可以继承AbstractAnnotationConfigDispatcherServletInitializer,关于这点我的文章已经说明使用全注解配置Spring MVC  package com.ssm.chapter15.config; import javax.servlet.MultipartConfi
Spring JDBC和Hibernate混用时,如何配置事务管理
由于我们项目的需求比较变态,一部分功能由于需要通过数据库配置表动态生成持久化逻辑,所以只得采用Spring JDBC,而另一部分的业务数据模型比较固定,所以我打算对这部分使用Hibernate。这样,一个应用系统同时存在Spring JDBC和Hibernate两种持久化技术。 我采用Spring 2.0,通过给注解驱动的方式进行事务管理,也就是说在Service接口中打@Tr...
Hibernate 事务与JDBC 事务同时使用注意事项
当一个service ,既调用了用Hibernate技术实现的DAO,又调用了用JDBC技术实现的DAO时,service需要怎样配置事务?当一个service 调用了其他service,而两个service所配置的事务不同,我们应该怎么处理? 本文通过4个测试,描述了在配置JDBC事务和Hibernate事务混用的情况下,应该注意的事情。写的不好,请大家多多帮助。 我们先进行一个测试,测...
SpringBoot+Atomikos分布式事务及多数据源动态切换,两种demo
SpringBoot+Atomikos分布式事务及多数据源动态切换,两种demo
springMVC mybatis mysql 配置 事务不起作用的原因
由于事务失效搞了我好长时间,也在网上找了很多,发现这篇文章是最好的所以推荐给大家。 http://blog.csdn.net/will_awoke/article/details/12002705 springMVC和spring一起使用的时候,配置文件会先后生成。大家现在多数喜欢用spring的注解方式进行配置,在配置文件中会有包的扫描过程,然而spring的扫描生成的service是具
Spring mvc+mybatis+mysql事物回滚不生效问题
    开始我打算在controller里面控制回滚,但尝试很多次无效,于是还是老实的在service里面控制事物回滚。    mysql需要表类型类为innoDB才行。有人说用mysql的话要关闭自动提交autocommit才行,我亲测不关也没问题。    不上不管开不开都可以正常回滚。    关于配置,注意点是spring-mvc中扫描注入时不要扫描service。原因是spring mvc扫...
SpringMVC、MyBatis声明式事务管理+AOP配置
采用的基本搭建环境:SpringMVC、MyBatis、MySQL、tomcat          Spring事务管理分解了传统的全局事务管理和本地事务管理的劣势,使得在任何环境中都可以使用统一的事务管理模型,你可以写一次代码,然后在不同的环境从你的代码里面配置不同的事务管理策略,Spring提供两种事务管理策略:一种是声明式事务管理策略,另一种是编程式事务管理策略,这里主要介绍声明式事务管理
Spring事务和Activiti事务
一、Spring事务   1、事务传播行为种类(注解方式)    参考文章:http://blog.csdn.net/nyistzp/article/details/9012275 @Transactional(propagation=Propagation.REQUIRED) public Integer initOrderSeqProcess(OrderSeq or
OSGI企业应用开发(十四)整合Spring、Mybatis、Spring MVC
作为一个企业级的Web应用,MVC框架是必不可少的。Spring MVC目前使用也比较广泛,本文就来介绍一下如何在OSGI应用中实现Spring、Mybatis、Spring MVC框架的整合,其中Spring MVC的整合比较困难,原因是Spring整合到OSGI中后,每个Bundle都拥有一个孤立的ApplicationContext,也就是说不同Bundle中实例化的Bean之间的依赖注入就存
spring 整合 mybatis+webmagic爬取数据并持久化
因为最近在爬数据进行分析,数据已经爬好了,但最后还是需要持久化到数据库。因为公司用的持久化框架是mybatis,这里面又不需要mvc的架构,所以只需要spring 和 mybatis进行整合就行了,spring 作为bean容器,mybatis负责orm映射和持久化。 我这边用的是gradle构建工具,下面是我的依赖: compile 'us.co...
springmvc + mybatis 事务管理(全注解式)
我的事务是配置在Controller层  测试中没用Service层,在springMVC的配置文档中开启事务   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:aop="http://www.springframework.org/schema/aop"   xmlns:tx="http://www.s
SpringMVC 手动控制事务提交 --各种坑
在springmvc的开发中,有个比较扯的东西,就是当你在代码中新开了一个线程,那么这个线程里面将不会有事物的存在. 解决.. 这样就可以提供事物支持了.. 在需要加事务的方法上加上 DataSourceTransactionManager transactionManager = (DataSourceTransactionManager) ctx
springboot集成mybatis添加注解事务
public class Country { //实体类参考本人博客地址:https://blog.csdn.net/yl_hahha/article/details/80208161 private long id; private String countryname; private String countrycode; public long ge...
SSM进阶(四)Spring整合Mybatis-----Aop事务
Spring整合Mybatis-----Aop事务   首先对于Spring整合Mybatis有两种方式那就是使用sql绝对定位以及使用Mapper代理来进行开发,本篇博文先来介绍第一种。          所谓的Sql绝对定位就是namespace+id得方式来进行定位; 首先对于Mybatis得介绍后面会有博文详细介绍,简单的说Mybatis得核心配置文件完成得就两个功能,一就是数据...
Jooq新手在SpringBoot中接入Jooq
参考:https://segmentfault.com/a/1190000006748584?utm_source=tuicool&amp;amp;utm_medium=referralJOOQ是啥  JOOQ 是基于Java访问关系型数据库的工具包。JOOQ 既吸取了传统ORM操作数据的简单性和安全性,又保留了原生sql的灵活性,它更像是介于 ORMS和JDBC的中间层。对于喜欢写sql的码农来说,JO...
springBoot+JPA+Mysql项目中的事物管理,发生异常未回滚的问题
    今天在项目中调试代码的时候,方法中报错,当去数据库中查看该方法操作的那条数据记录时,发现数据已经被修改了。但是该方法整体是处在@Transactional事物管理之下的,也就是说,发生异常时,事物没有回滚。    经过查找原因,发现是Mysql表类型问题。Mysql表类型分为InnoDB和MyISAM,二者有本质上的区别。具体区别请链接到http://www.cnblogs.com/xio...
spring jpa 中事物管理的一个测试用例,看看嵌套事务的回滚机制
做测试的目的是为了搞清楚在spring 4.3.4 中的事物管理的一个简单情况会产生的结果 场景: 有一个service里面对B表进行插入操作,并且用@Transactional 进行事物管理。 在另外一个service里面对B表进行插入操作,并且也用@Transactional进行事物管理。 同时,根据业务需要,又要对这个2个表同时进行插入操作,并且也纳入一个事物操作,希望获得的结果:
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java 用学习jpa吗 java课程设计 mvc