0

私はSpringを初めて使用しますが、Spring Data JPAを使用してJPAエンティティのリポジトリを生成するプロジェクトに取り組んでいます。

現在、Web ページにいくつかのデータを表示できるようにするための単純なモジュールを追加しています。サーブレットを追加しましたが、そこからリポジトリにアクセスできません。

web.xml に ContextLoaderListener を追加しました。applicationContext.xml で jpa:repositories と persistence.xml を参照していますが、現在、次の例外に悩まされています。

タイプ [javax.persistence.EntityManagerFactory] ​​の一意の Bean が定義されていません: 単一の Bean が必要ですが、0 が見つかりました。

しかし、persistence.xml に EntityManagerFactory を追加すると、次の不可解なメッセージが表示されます。

java.lang.IllegalAccessError: クラス org.hibernate.engine.spi.EJB3CascadeStyle からフィールド org.hibernate.engine.spi.CascadeStyle.STYLES にアクセスしようとしました

私の質問は、私がやろうとしていることは可能ですか? もしそうなら、どのように?それとも、弾丸を噛んで、Spring MVC などを完全に使用する必要がありますか?

注: これは 1 ページの Web サイト用であり、できるだけシンプルにしようとしています。

4

1 に答える 1

2

Spring Data JPA を使用するには、Spring で通常行うように、基礎となる JPA 実装を構成する必要があります。たとえば、infrastructure.xmlMETA-INF/persistence.xmlを参照してくださいspring-data-jpa-showcase(Spring 3.1 以降では、 のプロパティpersistence.xmlを使用すると削除できます)。packagesToScanLocalContainerEntityManagerFactoryBean

2番目の問題はIllegalAccessError、クラスパスに異なるバージョンのHibernate jarが存在することによって引き起こされるクラスロードの問題のように見えます。

于 2012-09-12T08:55:07.077 に答える