在用户开始使用之前,是否可以在新的spring trascation中执行一些操作?

wtlkbnrh  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(566)

我有spring boot jpa应用程序。
应用程序用户不时地请求新事务。
在使用事务之前,我想对与该事务相关的db连接执行一些操作。
“just before”表示在执行带有@transactional注解的方法的第一条语句之前,操作已经完成。
该操作是执行存储过程,其参数取决于当前应用程序用户。应用程序使用在技术帐户下与db一起工作。
先谢谢你

ifsvaxew

ifsvaxew1#

第一种解决方案:
全部投入 @Transacional 带注解的方法,其中您的预事务(尽管这听起来很奇怪)是第一部分。
第一部分可以执行任何操作,如果出现任何错误,可能会抛出en exception,从而强制事务回滚。这可能是个错误 @Repository 方法,a @Query 如果需要的话(就像乔希·波斯皮西尔建议的那样)或者别的什么。
第二种解决方案(我更愿意):
将3个方法调用放入 @RestController 的方法:首先-确定用户,第二-使用此用户的数据执行事务前操作,第三-实际操作 @Transacional 做这项工作的方法。

相关问题