同样,您的DuplicatedCodeException,BusinessException应该是运行时异常,或者为方法saveBank添加:
@Transactinal(rolbackFor =
{BusinessException.class,DuplicatedCodeException。,class})
在其他情况下,spring不会回滚事务。
从Spring文档:
尽管EJB的默认行为是使EJB容器在系统异常(通常是运行时异常)时自动回滚事务,但是EJB
CMT不会在应用程序异常(即Java以外的已检查异常)时自动回滚事务。
.rmi.RemoteException)。尽管Spring声明式事务管理的默认行为遵循EJB约定(仅针对未检查的异常会自动回滚),但是自定义它通常很有用。



