0

对于遗留迁移项目,我整天都在尝试让原生 SQL 与 JPA 一起运行。我已经将查询简化为应该可以工作的东西。

Query query = localEm.createNativeQuery("SELECT ID FROM TABLE");
List results = query.getResultList(); 

但是我通过 query.getResultList() 从 JPA 代码中获得了一个 NPE:

org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:328)处的 NullPointerException

这让我疯狂。我已经搜索了QueryImpl 源。我正在使用 IBM WebSphere,(WSJPA 2.1.1-SNAPSHOT 和 OpenJPA 2.1.1-SNAPSHOT),所以行号没有帮助,但看起来这部分代码没有任何重大变化2.2.0。但我看不出他们的代码有什么问题。我与 localEm(实体管理器)的其他 JPA 调用工作正常。

有人有想法吗?

4

1 回答 1

0

好的,我解决了。

如果我将代码放在我的远程 bean(道)中,它就可以工作。如果我将代码放在我的 Session bean(注入 Dao)中,它就不起作用。

我想当从远程 bean 返回时,对 EntityManager 的引用可能必须在某个时候被切断。

这是一个 EJB 问题(或者更确切地说,我对 EJB 问题的理解很差),但是从 OpenJPA 代码中抛出的 NPE 对我来说仍然是一个错误。

于 2013-03-06T15:58:11.503 回答