getResultList()中的IBM OpenJPA NullPointerException

时间:2013-03-04 10:01:39

标签: jpa openjpa

我花了一整天时间尝试使用JPA运行本机SQL,以用于旧版迁移项目。我已将查询简化为工作的内容。

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 source。我正在使用IBM WebSphere,(WSJPA 2.1.1-SNAPSHOT和OpenJPA 2.1.1-SNAPSHOT),因此行号没有帮助,但它看起来并不像在代码的那部分中有任何重大改变。 2.2.0。但我在他们的代码中没有看到任何错误。我与localEm(实体经理)的其他JPA调用工作正常。

有没有人有想法?

1 个答案:

答案 0 :(得分:0)

好的,我解决了。

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

我猜想从远程bean返回时,必须在某些时候切断对EntityManager的引用。

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