为什么我的事务拦截器没有起作用呢?

问题描述

配置里:<property name="transactionAttributes"><props>   <prop key="parseFile">PROPAGATION_NEVER</prop> <prop key="netMap">PROPAGATION_NEVER</prop><prop key="dbInsert">PROPAGATION_REQUIRES_NEW,-Exception</prop></props></property>我要拦截的方法是dbInsert我的dbInsert函数体内容...Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();.....// 执行SQL代码session.createSQLQuery(colInfoBean.getChecksql().split("sqlfengefu")[k]).executeUpdate();...........................} catch (Exception e) {。。。。。。。。。。。}我的想法是当出现Exception 异常时,更新操作回滚,但是现在不回滚,什么原因?是不是和我的Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();这句话有关系,取当前的Session链接?问题补充我现在得解决办法是,不使用事务拦截器,直接在方法中进行事务管理了,这样可以解决问题。问题是,为什么事务拦截器会不起作用呢,我不太明白。问题补充:如果不捕获异常,代码不让编译啊!

解决方案

楼主,你都catch了应该不能回滚吧,spring只能回滚uncheck异常,catch (Exception e) { }中加入TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();编码方式回滚,浸入性比较大
解决方案二:
例如:dbInsert() throws Exception
解决方案三:
你不会向外抛异常吗,只有抛了

时间: 2024-09-14 17:53:07

为什么我的事务拦截器没有起作用呢?的相关文章

配置-求助,SSH整合后拦截器不起作用

问题描述 求助,SSH整合后拦截器不起作用 struts.xml配置如下 <interceptors> <interceptor name="loginInterceptor" class="com.music.interceptor.LoginInterceptor"></interceptor> <interceptor-stack name="globalInterceptor"> <i

struts2拦截器-strus2继承MethodFilterInterceptor创建的拦截器不起作用

问题描述 strus2继承MethodFilterInterceptor创建的拦截器不起作用 Action 代码如下: package com.silveraegis.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; //登录lo

拦截器没有起作用 帮我看下是什么问题

问题描述 小弟初学拦截器 现做了个登录拦截器 没起作用 帮我看下 少什么东西struts.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/str

struts2 拦截器不起作用

问题描述 自定义了判断用户时候登陆的拦截器,并配置只一次执行action,拦截器不起作用连着两次执行action,拦截器才会起作用比如,通过login.html登陆后,输入list.action的地址,会返回登陆界面,但是拦截器程序没有输出(我在里面有print输出)如果连着两次输入list.action的话,才会显示内容求大神解答struts2拦截器配置<interceptors><interceptorname="authority"class="int

ajax-springmvc 登录拦截器

问题描述 springmvc 登录拦截器 拦截器起到了作用,跳到了登陆页面,登录页面是通过ajax提交请求给后台的,后台执行完了之后会返回一个map给ajax的success方法,从而进行页面的跳转.可是现在的问题是,后台执行了,但是跳不回前台,map也传回不去,更不说页面的跳转了. 解决方案 SpringMVC 登录拦截器实现springMVC之拦截器SpringMVC拦截器实现登录控制 解决方案二: 小机器人已经给你答案了: 1.不要拦截此跳转: 2.登录在后台执行了后,如果登录成功,直接更

struts2.1 使用 convention plugin 时配置拦截器问题

问题描述 使用conventionplugin可以不用写action而根据地址栏中写的action名去找相应的页面.我在struts.xml中配置了默认拦截器,我将自己写的拦截器加入到默认拦截器中了,现在的问题是,如果我不写action类而直接利用conventionplugin根据地址栏中的action名查找相应的页面,则拦截器不起作用,如何才能让拦截器起作用而不用再写action类. 解决方案 解决方案二:该回复于2010-05-18 16:24:09被版主删除解决方案三:呵呵,写个过滤器解

【Struts2框架】第六节拦截器-拦截器介绍和总结

一.拦截器概念 Strrurs拦截器是可插拔式的拦截器:如果我们要使用某个拦截器,只需要在配置文件中应用该拦截器即可. Struts拦截器由struts-default.xml,struts.xml等配置文件中进行管理. Struts2中已经默认启动了大量通用功能的拦截器(这些拦截器以name-class对的形式配置在struts-default.xml文件中),只要我们配置Action的package继承了struts-default包,这些拦截器就会起作用. 拦截器几乎完成了Sturts2框

Struts2之拦截器篇

拦截器是Struts2框架的核心和基础,Struts2绝大多数功能都是通过拦截器来完成的,当StrutsPrepareAndExecuteFilter拦截到用户请求后,大量拦截器会对该请求进行处理,然后才调用用户自定义的Action类中的方法进行处理请求,由此可见,拦截器是Struts2的核心所在. Struts2框架内建了大量的拦截器,我们可以在struts-default.xml中进行查看: 那么这些内置拦截器的具体作用是什么呢?     alias 实现在不同请求中相似参数别名的转换 au

SpringMVC 中的Interceptor 拦截器

  1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors>  <!-- 日志拦截器 -->  <mvc:interceptor>   <mvc:mapping path="/**" />   <mvc:exclude-mapping path="/static/**" />   <bean class="拦截器java代码路径" />