2011-02-03 11 views
0

Goodmorning all、JDO/DataNucleusとのコンテナ管理トランザクション

私は現在Datanucleus/JDOで遊んでいます。私が気に入っているのは、タイプセーフなクエリシステムです。今後のプロジェクトでDatanucleusを使用したいと考えています(私はHibernateバックグラウンドから来ています)。 コンテナ(JBOSS 5)にトランザクションを管理させ、データ核ユーザー(datanucleus forum thread)の指示に従ってデータソースを定義しましたが、唯一の問題はJDOPersistenceManagerを取得する方法を理解できないことですJNDIルックアップからPersistenceManagerがJDOPersistenceManagerへのキャストを試みると、ClassCastExceptionが取得されます。 タイプセーフなクエリを取得するためにJDOPersistenceManagerが必要です... 私の設定はスレッドで説明したものと同じです..

誰かが以前に同じ問題に遭遇しましたか? また、もしこのことがまったく可能であれば、私はまた歩き回ります...

ありがとうございました!

+0

ため org.datanucleus.jdo.connector.PersistenceManagerImplクラスのアクセサを提供し、あなたは簡単に私たちはそのPMの完全修飾クラス名が何であるかを知らせることができます。それはあなたにキャストできるものを教えてくれます – DataNucleus

+0

jndiルックアップから受け取ったインスタンスは、org.datanucleus.jdo.connector.PersistenceManagerImplというクラスのインスタンスです。私はJDOPersistenceManagerのインスタンスが必要だと思う、おそらく私はどこかのデータソースの設定でそれを指定する必要がありますか? – Andrea

答えて

1

はJCAの下で基礎となるJDOPersistenceManagerを取得するためのとても明らかなアクセスポイントを、それを試していないために時間を持っていたことはありません...しかし、この

JDOPersistenceManager jdopm = 
    ((JDOTransaction)pm.getCurrentTransaction()).getPersistenceManager(); 

のようなものを試してみて、それが動作するかどうか、あなたは、私たちまでの回避策を持っていますあなたがPMを取得する場合JDOPersistenceManager

+0

あなたの返信ありがとう!今は期待どおりに動作します。さようなら – Andrea

関連する問題