spring事务注解@Transactional事务不回滚

问题描述

spring事务注解@Transactional事务不回滚
如题:

public interface A {

public void A();

}

public class B implements A{

public void A(){        B();}

@Transactional
public void B(){
//删除数据
//两者之前发生异常了。。。
//添加数据
}

}

如果将@Transactional注解放在某一service实现类的某一非入口方法,发现数据不会回滚,请问大神们是为什么?

解决方案

没配置回滚
@Transactional(rollbackFor=Exception.class)

时间: 2024-09-17 03:45:39

spring事务注解@Transactional事务不回滚的相关文章

spring mybatis集成,出错不回滚

问题描述 spring mybatis集成,出错不回滚 配置文件,spring-servelt.xml <!-- 加载Controller --> <context:component-scan base-package="com"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"

Spring 事务管理,事物不回滚

问题描述 测试类: package com.demo.test; import javax.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassR

JPA的事务注解@Transactional使用总结

  在项目开发过程中,如果您的项目中使用了Spring的@Transactional注解,有时候会出现一些奇怪的问题,例如:   明明抛了异常却不回滚? 嵌套事务执行报错? ...等等   很多的问题都是没有全面了解@Transactional的正确使用而导致的,下面一段代码就可以让你完全明白@Transactional到底该怎么用.   直接上代码,请细细品味 @Service public class SysConfigService { @Autowired private SysConf

c#中事务、批量提交、回滚的写法

public void UpdateContactTableByDataSet(DataSet ds,string strTblName) { try { SqlDataAdapter myAdapter = new SqlDataAdapter(); SqlConnection conn = new SqlConnection(strConnection); SqlCommand myCommand = new SqlCommand("select * from strTblName"

事务-ASP.NET多步骤回滚,请指点

问题描述 ASP.NET多步骤回滚,请指点 做了一个.net简易网站,一次提交需要制定对多个独立的数据库增改删操作,顺序执行. 假设第三步执行出错,不仅仅回滚第三步,前两部也要回滚.望指点. 解决方案 http://www.cnblogs.com/aigongsi/archive/2013/01/14/2860372.html

Spring的事务管理对何种异常进行回滚

  一.结论 Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚. 如果一个方法抛出Exception或者Checked异常,Spring事务管理默认不进行回滚. 关于异常的分类请参看本博客的<Java异常分类>http://blog.csdn.net/woshixuye/article/details/8230407     二.改变默认方式 在@Transaction注解中定义noRollbackFor和RollbackFo

Spring事务管理只对出现运行期异常进行回滚_java

一.结论 Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚. 如果一个方法抛出Exception或者Checked异常,Spring事务管理默认不进行回滚. 关于异常的分类一下详细介绍: 1.基本概念 看java的异常结构图  Throwable是所有异常的根,java.lang.Throwable Error是错误,java.lang.Error Exception是异常,java.lang.Exception 2.Excep

在Java的JDBC使用中设置事务回滚的保存点的方法_java

新的JDBC3.0保存点的接口提供了额外的事务控制.他们的环境中,如Oracle的PL/ SQL中的大多数现代的DBMS支持保存点. 当设置一个保存点在事务中定义一个逻辑回滚点.如果发生错误,过去一个保存点,则可以使用rollback方法来撤消要么所有的改变或仅保存点之后所做的更改. Connection对象有两个新的方法,可帮助管理保存点: setSavepoint(String savepointName): 定义了一个新的保存点.它也返回一个Savepoint 对象. releaseSav

详解Java的JDBC API中事务的提交和回滚_java

如果JDBC连接是在自动提交模式下,它在默认情况下,那么每个SQL语句都是在其完成时提交到数据库. 这可能是对简单的应用程序,但有三个原因,你可能想关闭自动提交和管理自己的事务: 为了提高性能 为了保持业务流程的完整性 使用分布式事务 若要控制事务,以及何时更改应用到数据库.它把单个SQL语句或一组SQL语句作为一个逻辑单元,而且如果任何语句失败,整个事务失败. 若要启用,而不是JDBC驱动程序默认使用auto-commit模式手动事务支持,使用Connection对象的的setAutoComm