相关疑难解决方法(0)

Spring @Transactional注释被忽略了

我的@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)

java spring annotations transactions jdbc

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

annotations ×1

java ×1

jdbc ×1

spring ×1

transactions ×1