中止由 @Transactional 创建的事务但正确返回(不抛出异常)
我有一个用@Transactional 注释的方法。在此方法中,数据对象被解析并最终保存在数据库中。如果解析失败,该方法不会抛出异常,而是返回一个特殊值。
我如何告诉事务回滚?通常,@Transactional 创建的事务只是在异常时回滚。
请不要告诉我为什么我不应该返回特殊值或者为什么使用 @Transactional 在我的情况下没有意义。我需要一个有效的解决方案,即使它不是最好的设计 - 我自己就知道。
感谢您的帮助!
I have a method annotated with @Transactional. In this method a data object is parsed and should finally be saved in the database. If the parsing fails, this method does not throw an exception, but returns with a special value.
How can I tell the transaction to rollback? Normally the transactions created by @Transactional just rollback on exception.
Please don't tell me why I should not return a special value or why using @Transactional does not make sense in my case. I need an effective solution, even if its not the nicest design - I know it by myself.
Thanks for your help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 TransactionAspectSuport.currentTransactionStatus()。setRollbackOnly() 。
Use TransactionAspectSuport.currentTransactionStatus().setRollbackOnly().