0

レガシー移行プロジェクトのために、ネイティブ SQL を JPA で実行できるように 1 日を費やしました。クエリを機能するものに単純化しまし

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 (Entity Manager) を使用した他の JPA 呼び出しは正常に機能しています。

誰にもアイデアはありますか?

4

1 に答える 1

0

わかりました、解決しました。

リモートBean(Dao)にコードを配置すると、機能します。コードをSessionBean(Daoを注入する)に配置すると、機能しません。

リモートBeanから戻るとき、EntityManagerへの参照はおそらくある時点で切断される必要があると思います。

これはEJBの問題(またはEJBの問題についての私の理解不足)でしたが、OpenJPAコードからスローされたNPEはまだ私にはバグのように見えます。

于 2013-03-06T15:58:11.503 に答える