NutzCN Logo
问答 @Aop(TransAop.READ_COMMITTED) 是用于事物吗?为什么不管用呢?
发布于 3023天前 作者 哎呦哥哥 2579 次浏览 复制 上一个帖子 下一个帖子
标签: dao 事务
	/**
	 * 角色删除
	 * @param id
	 * @return
	 */
	@At("role/delete")
	@Aop(TransAop.READ_COMMITTED)
	public View delete(String id, @Param("pageNumber")int pageNumber){
		/*删除自身*/
		boolean flag1 = roleService.delete(id, Role.class);
		try {
			throw new Exception("手工异常 测试事物");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		/*删除关联对象 角色菜单中间表*/
		boolean flag2 = roleMenuService.delByCnd(RoleMenu.class, Cnd.where("role_id", "=", id));
		if(flag1 && flag2)
			return roleRecord(new Role(), pageNumber);	
		return new ViewWrapper(new JspView("views/admin/error"), "操作失败,请重试!");
	}

3 回复

得把异常抛出去才叫异常,才会回滚

@wendal 哦哦,那我这里该怎么测试它有没有效果呢,我开始学编程没多久

建议再写个Service, 在Service的方法标注事务, 然后在该方法中抛出异常, 这样就满足了既要捕捉异常,又需要按需返回View的要求.
PS: 上述方法务必去掉入口方法的事务注解

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