NutzCN Logo
问答 注解事务抛出异常没有回滚
发布于 2434天前 作者 qq_a930202f 2431 次浏览 复制 上一个帖子 下一个帖子
标签:
@IocBy(type = ComboIocProvider.class,args = { 
		"*json","/ioc",
		"*anno", "com.bb",
		"*quartz",
		"*async",
		"*tx",
		"*jedis",
		"*slog"})

@Ok("json") 
@Fail("http:500")
public class MainModule {
	@Aop(TransAop.READ_COMMITTED)
	private box getBox(Box box) {

		int c1 = dao().update1(box);
  
		int c2 = dao().update2(box);
		
		if(c1<1 || c2<1) {	
			box	= null;	
			throw new ServiceException("failed");
		}
		
		return box;
	}

其中c2没成功,也抛出ServiceException了。但是c1却没有回滚?
InnoDB类型

9 回复

@wendal
是要这样吗?

private box getBox(Box box)  throws ServiceException{
...
}

要真的抛出来

ServiceException是RuntimeException吗,如果是spring的话发生runtimeException是不会回滚的,nutz我不是很清楚

是异常就回滚

@Aop(TransAop.READ_COMMITTED)
	private box getBox(Box box)  throws ServiceException{

		int c1 = dao().update1(box);
  
		int c2 = dao().update2(box);
		
		if(c1<1 || c2<1) {	
			box	= null;	
			throw new ServiceException("failed");
		}
		
		return box;
	}

这样还是没有回滚

[catalina-exec-26][ERROR][com.bb.BoxService][140]:failed to openbox

error的日志是在调用getBox(Box box) 时输出的

等等, 私有方法!!! 这是不行的!!!

兽总威武,这个原因还真不知道。。。。

添加回复
请先登陆
回到顶部