我在这里读了几个关于OptimisticLockException
和JPA的问题,用于无状态会话bean。它被抛出,但不是我所期望的那样。
以下是我希望得到异常的代码:
try
{
productFacade.edit(product);
}
catch(Exception {
return "lock";
}
productFacade
是使用NetBeans生成的,它是一个带有本地接口的EJB,它实现了一个AbstractFacade
抽象类。据我所知,这与JPA中的事务有关。因为在保留此代码片段的方法之后抛出异常,而不是在调用edit()
之后抛出异常。我应该在哪里处理异常?
另外,我将需要稍后的事务机制,因为我需要更新多个产品(如果某些产品被锁定,则不需要)。我找到了一些代码示例,但这让我想知道如何处理事务?
答案 0 :(得分:4)
在事务提交之前不会抛出锁定错误。因此,您需要在SessionBean之外处理它或使用容器管理的事务。
或者,你可以在你的JPA EntityManager上调用flush(),然后就会抛出错误。