gpt4 book ai didi

java - 如何在 JPA 中捕获 OptimisticLockException

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

我在这里读了几个关于 JPA 的 OptimisticLockException 的问题,在无状态 session bean 中使用。它被抛出,但显然不在我预期的位置。

这是我希望得到异常的代码:

            try
{
productFacade.edit(product);
}
catch(Exception {
return "lock";
}

productFacade 是用 NetBeans 生成的,它是一个带有本地接口(interface)的 EJB,它实现了一个 AbstractFacade 抽象类。据我所知,这与 JPA 中的事务有关。因为异常是在这个代码片段所在的方法被离开之后抛出的,而不是在 edit() 被调用之后。我应该在哪里处理异常?

此外,我以后还需要交易机制,因为我需要更新多个产品(如果某些产品已锁定,则不更新)。我找到了一些代码示例,但这让我想知道我应该如何处理事务?

最佳答案

直到事务提交后才会抛出锁错误。因此,您需要在 SessionBean 之外处理它或使用容器管理的事务。

或者,您可以在 JPA EntityManager 上调用 flush(),然后将抛出错误。

关于java - 如何在 JPA 中捕获 OptimisticLockException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17203452/

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