spring的@Transactional注解

一件小事

用了下@Transactional注解,发现异常出现后事务并没有回滚,service层代码大概长这样

@Transactional
	public void saveStudentInTryCatchBlock() {
		try {
			Student student = new Student();
			student.setAge(12);
			student.setName("testWT" + 1);
			mapper.insertStudent(student);
			student.setName("testWT" + 2);
			mapper.insertStudent(student);
			throw new Exception();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}

回过神来,没有抛出方法外的异常当然捕捉不了,所以应该大约是这样写

@Transactional
	public void saveStudentInTryCatchBlock() throws Exception{
		try {
			Student student = new Student();
			student.setAge(12);
			student.setName("testWT" + 1);
			mapper.insertStudent(student);
			student.setName("testWT" + 2);
			mapper.insertStudent(student);
			throw new Exception();
		} catch (Exception e) {
			System.out.println(e.getMessage());
			//在这干些什么
			throw e;
		}
	}

大概就是AOP编程这这那那的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值