我的应用程序中有一个旧的控制器,该控制器在xml中定义为Spring Bean,并使用Spring的SimpleFormController。我试图onSubmit
通过添加@Transactional
注释来使控制器方法中的事务具有事务性,但是它不起作用。根据该指南,注释的调用必须在“ bean外部”进行,这是否意味着注释不能在像我的旧Spring控制器中使用?有其他选择或解决方法吗?
我知道它不起作用的原因是:1)对数据库所做的更改不会因错误而回滚(尽管事实上我已经定义了它rollbackFor = Exception.class
,甚至在某些实例中使用过TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
,但在这种情况下它尝试使用后者)引发错误,指出不存在任何事务2)我@Transactional
在Spring中实例化的位置添加了断点,但没有一个被命中。
编辑:所以人们要求代码的可复制示例。问题不在于业务逻辑代码之内,我正在寻找有关在Spring 2控制器中使用注释的清晰性。因此,例如,我有以下内容:
public class ImportController extends SimpleFormController {
@Override
@Transactional(rollbackFor = Exception.class)
public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception {
...
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句