面试题--关于spring事务控制的

问题描述

上周去面试,面试官问我,spring事务控制放在service层,在service方法中一个方法调用service中的另一个方法,默认开启几个事务?

解决方案

一个。spring的事务传播方式默认是PROPAGATION_REQUIRED,也就是加入当前事务(如果没有就开启一个新事务)。
解决方案二:
默认PROPAGATION_REQUIRED,判断当前是否已开启一个新事务,有则加入当前事务,否则新开一个。共有7种方式。

时间: 2024-10-20 05:34:49

面试题--关于spring事务控制的的相关文章

spring事务控制转账问题

问题描述 spring事务控制转账问题 例:A账户金额有1000元,另有B账户,C账户:现有两个独立事务同时进行: 1,将A账户的1000块钱转到B账户: 2,将A账户的1000块钱转到C账户: 事务的操作:A,-1000 B/C,+1000: 是不是会存在这种情况: 执行事务时,由于没有真正修改数据库,两个事务都是合法: 执行完事务,实际保存数据时,后保存数据A账户钱数会报错(金额不会修改),而C账户钱会增加: 导致,B,C账户增加总和大于A账户减少的金额? 解决方案 spring事务问题:没

sping hibernate 事务-spring注解方式事务控制没有回滚

问题描述 spring注解方式事务控制没有回滚 项目中使用到了hibernate以及spring事务控制,在service层增加事务控制但是遇到异常没有回滚. 代码如下: 配置文件 <?xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springfr

spring事务不起作用

问题描述 我估计让程序报错但是数据没有回滚,是为什么,配置事务的成功例子我都有,网上的解答我基本都看过了,但是还是解决不了,拿出来跟大家分享一下,看大家能解决么??这是service里的publicvoidmodifyRoleMenus(Stringid,Stringmenuids)throwsException{if(null!=id&&menuids!=null){Queryquery=cashFlowDao.session().createSQLQuery("deletef

spring data jpa + spring mvc的事务控制问题

问题描述 spring data jpa + spring mvc的事务控制问题 问题大概是这样的,如下@Transactionalpublic void save(A a){ a = aRepository.save(a); B b = new B();b.setAId(a.getId());bRepository.save(b); }这样是获取不到a对象的id的,因为方法没有执行完,这个事务没有提交,数据没有更新到数据库,请问如果我想在save之后通过返回的对象就能拿到主键需要怎么做,事务是

spring mvc +hibernate4事务控制问题求大神解答

问题描述 spring mvc +hibernate4事务控制问题求大神解答 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="

spring mvc+hibernate4事务控制

问题描述 spring mvc+hibernate4事务控制 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://

Spring事务管理高级应用难点剖析: 第2部分

联合军种作战的混乱 Spring 抽象的 DAO 体系兼容多种数据访问技术,它们各有特 色,各有千秋.像 Hibernate 是非常优秀的 ORM 实现方案,但对底层 SQL 的控制不太方便: 而 iBatis 则通过模板化技术让您方便地控制 SQL,但没有 Hibernate 那样高的开发效率:自 由度最高的当然是直接使用 Spring JDBC 莫属了,但是它也是最底层的,灵活的代价是代码的 繁复.很难说哪种数据访问技术是最优秀的,只有在某种特定的场景下,才能给出答案.所以 在一个应用中,往

详解spring事务属性

Spring声明式事务让我们从复杂的事务处理中得到解脱.使得我们再也无需要去处理获得连接.关闭连接.事务提交和回滚等这些操作.再也无需要我们在与事务相关的方法中处理大量的try-catch-finally代码. 我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性.事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成.我们在进行事务划分时,需要进行事务定义,也就是配置事务的属性. Spring在TransactionDefinition接口中定义这些属性,

spring事务详解

Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用,仅供学习参考. Spring声明式事务让我们从复杂的事务处理中得到解脱.使得我们再也无需要去处理获得连接.关闭连接.事务提交和回滚等这些操作.再也无需要我们在与事务相关的方法中处理大量的try-catch-finally代码.我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性.事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成.我们在进行事