gpt4 book ai didi

java - 我如何从容器管理的事务提交中捕获异常?

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:00 25 4
gpt4 key购买 nike

我有一个带有 @WebService 接口(interface)的 @Stateless EJB,使用容器管理的事务,这意味着在调用方法后容器会自动提交事务,如果它不会抛出系统异常。

如果我尝试 EntityManager.persist(...) 两个具有相同值的对象的列具有唯一约束,容器将抛出 PersistenceException 在我的代码之外提交给客户。 我如何捕获此异常以便重新抛出我自己的应用程序异常?

我是否必须在我的方法中手动提交事务以捕获提交时的异常? (EntityManager.flush() 是正确的方法吗?)如果是这样,容器管理事务有什么意义?

最佳答案

不幸的是,无法从容器管理的事务失败中捕获异常。正如您所说,您最好的选择是使用 bean 管理的事务。或者,您可以使用实现相同接口(interface)的代理 bean 包装您的 EM EJB。当您的代码不需要响应特定的提交失败时,容器管理的事务是合适的。

关于java - 我如何从容器管理的事务提交中捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3726151/

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