@Transactional事务失效问题

1、当方法非public修饰或者使用static修饰时,事务失效

@Transactional
public static void test() {
}

@Transactional
private void test() {
}

上述两种情况在编译时即可发现;

2、使用try catch,事务失效

@Transactional
public void test() {
	try {
		//sql
		int i = 1 / 0;
	} catch (Exception e) {
	}
}

由于事务需要异常触发,所以不能把异常直接吞掉

3、同一个类,A方法调用B方法,A无事务,B有事务,B中事务失效

public class Test {
	public void A() {
		B();
	}

	@Transactional
	public void B() {
	}
}

上述情况B中事务直接失效,只能在A方法上加事务注解


版权声明:本文为qq_43479628原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。