2012-01-25 8 views
0

私は自分のプロジェクトでHibernateを実行していますが、EclipseLinkに切り替えるように設定しようとしています。 MavenにすべてのEclipseLinkクラスを追加しましたが、まったく実行されていないようです。私はプロジェクトを実行しようとすると、それはで終わる:HibernateおよびEclipseLinkプロバイダ

Exception in thread "main" javax.persistence.PersistenceException: 
    No Persistence provider for EntityManager named test 

マイpersistence.xmlのファイル:https://gist.github.com/1676280

依存関係を持つのpom.xmlファイル:一度https://gist.github.com/1676282

私はpersistence.xml内のプロバイダをHibernateに戻し、すべて正常に動作します。

+0

JPAの実装を簡単に切り替えることはできません。 – bmoran

答えて

2

persistence.xmlに重大な問題といくつかの小さな問題があります。

大きな問題は、パーシスタンスユニットの名前が "org.knyttl"ですが、パーシスタンスユニット "test"が見つからないというエラーメッセージです。あなたが "テスト"を探していて、puが "org.knyttl"なら、あなたは何も見つけられません。 :)

マイナーな問題は、いくつかのEclipseLinkプロパティの名前が間違っていることです。 「javax.persistence.target-database」は「eclipselink.target-database」で、「javax.persistence.logging.level」は「eclipselink.logging.level」である必要があります。

Shaun

+0

"test"と "org.knyttl"は質問を投稿するときの入力ミスです。残念ながら、マイナーな問題は問題を解決しませんでした。 –

+0

永続性ユニットの名前がpersistence.xml内で、createEntityManagerFactory()の呼び出しで一致する場合、EclipseLinkがクラスパス上にないと思います。これをデバッグするには、Persistence.createEntityManagerFactoryコードをステップ実行し、JPAプロバイダのための狩猟を見てください。クラスパス上のすべてのMETA-INF/services/javax.persistence.spi.PersistenceProviderファイルをロードしようと試みることによってそれらを探します。 –

関連する問題