我的@Transactionnal注释似乎被忽略了.我对Spring容器的初始化没有错误.看起来我的方法还没有被Spring TX框架代理.在执行我的服务方法期间,JDBCTemplate会抛出预期的RuntimeException.问题是JDBC连接没有回滚并且更改是持久的.堆栈跟踪不显示应该包装我的服务方法的代理的任何符号.
编辑:添加了控制器的代码
编辑2:添加了服务的界面
这是我的服务界面.
public interface ApplicationsService {
public Application getApplicationById(int id);
public void createApplication(Application application);
public void createInstance(Application application);
public Map<Integer, Application> getUserApplications(String username);
public Application newApplication(String email);
}
Run Code Online (Sandbox Code Playgroud)
这是我的服务.
@Service
public class ApplicationsServiceImpl implements ApplicationsService {
...
@Transactional
public void createApplication(Application application){
// Persisting the application.
applicationDAO.createApplication(application);
application.setId(
applicationDAO.findApplicationId(application.getName(), application.getAccount().getEmail())
);
// Creating the physical instance.
createInstance(application);
}
...
}
Run Code Online (Sandbox Code Playgroud)
Spring Controller负责方法调用.
@Controller
@RequestMapping("/applications")
public class ApplicationsController {
...
@Autowired
private ApplicationsService applicationsService;
...
@RequestMapping(method=RequestMethod.POST)
public String …Run Code Online (Sandbox Code Playgroud)