【发布时间】:2015-05-20 22:48:53
【问题描述】:
我在 Oracle DB 中有一个存储过程,我希望使用以下 JPA 代码从我的 EJB AS (websphere) 调用它。 该过程在其主体中包含一些“COMMIT”。关键是当我删除该过程的 COMMIT 时,JPA 能够正确调用该过程。如果我离开 COMMIT,那么我会收到一个异常,告诉我无法执行该调用。
Java 代码放置在会话 bean 中,事务默认设置为 REQUIRED。
public void updateProc() {
Query query = entityManager.createNativeQuery("call UPDATE_MYPROC()");
query.executeUpdate();
}
我认为问题与交易有关,但不确定。有人可以帮忙吗?谢谢!
【问题讨论】:
-
是的,问题出在交易中。你用的是什么锁定模式?
-
看看link
-
如果您不想从过程中删除 COMMIT,请尝试为会话 bean 中的方法设置 NOT_SUPPORTED。
-
使用 NOT_SUPPORTED 我遇到了同样的问题:下级会话中不允许 ora-02089 提交
-
可以不使用XA Datasourse吗?
标签: oracle jpa transactions ejb-3.0