spring - 如何使用事务注释捕获错误?
问题描述
我使用弹簧靴 2.2。
在具有事务性注释的方法中,当我通过存储库保存时,如果没有错误,我想用 rabbit mq 发送一条消息。
如何确保存储库没有错误?
@Transactional
public void save(CreditEvent creditEvent) {
repository.save(creditEvent);
//no error send message
}
如果发送消息时出现错误,我不想回滚保存操作。
解决方案
虽然它是 Transactional 和 JPA,但它仍然是一个 java 方法,如果保存失败,则会抛出未经检查的DataAccessException异常,并且流将不会继续发送消息。
class 是一个运行时异常,如果任何错误被认为是致命的(通常情况下),则不需要用户代码来捕获它或子类。
推荐阅读
- android - 当我长按按钮时,它总是在执行并且测试被冻结
- selenium - 单击弹出窗口/警报以使用 selenium 启动 Web 应用程序
- applescript - 如何使用 AppleScript/osascript 正确(快速)迭代提醒?
- node.js - 面对 ForbiddenError:无效的 csrf 令牌
- azure-active-directory - Azure AD:如何将安全组和应用程序角色都放入访问令牌
- r - 定义列表元素的名称
- wordpress - 多语言 WP 网站的 Htaccess 重定向
- apache - 如何在没有 pfx 的 dotnet 核心项目中安装 google ssl apache server linux
- .htaccess - RewriteCond %{REQUEST_FILENAME} !-f 不起作用
- arduino - 在 IO 块中使用 RAM