Java 请求处理失败;嵌套异常为org.springframework.transaction.IllegalTransactionStateException

Java 请求处理失败;嵌套异常为org.springframework.transaction.IllegalTransactionStateException,java,spring,spring-mvc,spring-transactions,Java,Spring,Spring Mvc,Spring Transactions,你能帮我解决这个错误吗 HTTP状态500-请求处理失败;嵌套异常是 org.springframework.transaction.IllegalTransactionStateException: 事务已完成-不再调用提交或回滚 每笔交易不超过一次 代码 @覆盖 公共字符串saveTemplatesToPCA(列出文件模板){ TransactionDefinition TransactionDefinition=新的DefaultTransactionDefinition(); Trans

你能帮我解决这个错误吗

HTTP状态500-请求处理失败;嵌套异常是 org.springframework.transaction.IllegalTransactionStateException: 事务已完成-不再调用提交或回滚 每笔交易不超过一次

代码

@覆盖
公共字符串saveTemplatesToPCA(列出文件模板){
TransactionDefinition TransactionDefinition=新的DefaultTransactionDefinition();
TransactionStatus状态=transactionManager.getTransaction(transactionDefinition);
试一试{
template.saveOrUpdateAll(fileTemplates);
transactionManager.commit(状态);
返回“成功”;
}捕获(例外e){
transactionManager.rollback(状态);
System.out.println(“saveTemplatesToPCA()中的异常:”+e);
返回“失败”;
}
}
处理此异常

@Override
    public String saveTemplatesToPCA(List<FilesTemplateDomain> fileTemplates) {
         TransactionDefinition transactionDefinition = new DefaultTransactionDefinition();
         TransactionStatus status = transactionManager.getTransaction(transactionDefinition);
        try {
            template.saveOrUpdateAll(fileTemplates);
            transactionManager.commit(status);

            return "success";
        } catch (Exception e) {
            try{
            transactionManager.rollback(status);
            }catch(Exception ee){
                System.out.println("Exception in commit or rollback : "+ee);
            }
            System.out.println("Exception in saveTemplatesToPCA() : "+e);
            return "fail";
        }
    }
@覆盖
公共字符串saveTemplatesToPCA(列出文件模板){
TransactionDefinition TransactionDefinition=新的DefaultTransactionDefinition();
TransactionStatus状态=transactionManager.getTransaction(transactionDefinition);
试一试{
template.saveOrUpdateAll(fileTemplates);
transactionManager.commit(状态);
返回“成功”;
}捕获(例外e){
试一试{
transactionManager.rollback(状态);
}捕获(异常ee){
System.out.println(“提交或回滚中的异常:+ee”);
}
System.out.println(“saveTemplatesToPCA()中的异常:”+e);
返回“失败”;
}
}

如果事务自动提交怎么办?不要在每个事务中多次调用“提交”或“回滚”。抱歉,我无法理解@nikpon回滚和提交在我的情况下是必要的,所以我处理这个例外。。现在很好,谢谢..谢谢@nikpon。。我还必须在catch块中处理事务回滚方法……多亏了您,我可以看到回滚的错误,从而使调试变得更容易;)
@Override
    public String saveTemplatesToPCA(List<FilesTemplateDomain> fileTemplates) {
         TransactionDefinition transactionDefinition = new DefaultTransactionDefinition();
         TransactionStatus status = transactionManager.getTransaction(transactionDefinition);
        try {
            template.saveOrUpdateAll(fileTemplates);
            transactionManager.commit(status);

            return "success";
        } catch (Exception e) {
            try{
            transactionManager.rollback(status);
            }catch(Exception ee){
                System.out.println("Exception in commit or rollback : "+ee);
            }
            System.out.println("Exception in saveTemplatesToPCA() : "+e);
            return "fail";
        }
    }