繁体   English   中英

与方法注解者@Transactional的通信

[英]Communication to caller of method annotated @Transactional

我有一个使用Spring @Transactional批注的方法:

    @Transactional
    public void persistAmendments(int _cutsheetId) {
          ...
    }

如果发生迫使该事务回滚的条件,那么persistAmendments()的调用者将如何知道这一点? 我希望我的调用代码能够适当地处理这种情况。 是否有抛出堆栈的特殊异常?

调用持久层的方法将捕获所有RuntimeExceptions,这将使其知道持久化数据时发生了错误。 默认情况下,Spring回滚任何引发RuntimeException的事务。 这是我的意思的简短示例。

AmendementService

@Service
public class AmendmentService {

    @Autowired
    private AmendmentRepository amendmentRepository;

    public boolean persistAmendments(int _cutsheetId) {
        boolean persistSuccessful = true;
        try {
            amendmentRepository.persistAmendments(_cutsheetId);
        } catch (RuntimeException e) {
            persistSuccessful = false;
        }
        return persistSuccessful;
    }
}

AmendmentRepository

@Repository
public class AmendmentRepository {

    @Transactional
    public void persistAmendments(int _cutsheetId) {
        //attempt to persist
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM