gpt4 book ai didi

java - 将 @Transactional 与 "jpaApi.withTransaction"混合有问题吗?

转载 作者:行者123 更新时间:2023-12-02 05:06:12 24 4
gpt4 key购买 nike

我在让交易在我的 Play 应用程序中正常工作时遇到了一些麻烦,而且我的代码的结构方式使我无法花时间“正确”执行它,如 Play 框架文档中所示。

仅使用 @Transactional 是不够的,因为由于某种原因,当我抛出自己的异常时,它没有回滚。

这就是我设法使交易正常进行的方式:

@Transactional
public Result myAction() {
try {
return ok(Json.toJson(myServiceClass.doStuff()));
} catch (BusinessRuleException e) {
return badRequest(Json.toJson("error"));
}
}

...

public class MyServiceClass {
public Bill doStuff() throws BusinessRuleException {
return jpaApi.withTransaction(() -> {

//...do a bunch of stuff here

});
}
}

这样可以吗?以后会因为某种原因导致问题吗?

最佳答案

@TransactionalJPAApi.withTransaction 在底层创建实体管理器的新实例。该实体管理者充当工作单元。在这种情况下,您最终会得到两个未连接的正在运行的事务。所以我想最好不要混合这两种方法并选择其中一种。

关于java - 将 @Transactional 与 "jpaApi.withTransaction"混合有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56349400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com