2012-03-01 12 views
2

私は、親warファイルのWEB-INF/libフォルダにあるモジュールを持っています。このモジュールには、persistence.xmlと、起動時にJPAコンテナがロードされるときにロードする必要があるエンティティが含まれています。何とか私は戦争とlib jarの永続ユニットをマージする必要があります。私の戦争のpersistence.xmlはWEB-INF/classes/META-INFに存在します。したがってWEB-INF/classesを永続性ルートとみなし、lib jarからエンティティを理解できません。それは私が難しい方法を見つけました。MergingPersistenceUnitManagerを使用してエンティティを読み込みます

私はこの問題への解決策を示唆して複数の人

http://ancientprogramming.blogspot.com/2007/05/multiple-persistencexml-files-and.html を偶然見つけて、私はまた、エンティティのクラス定義をマージしますMergingPersistenceUnitManagerを持って春のData-JPAプロジェクトがあることが分かりました。

はここで仕事をdoesntの私の設定

<bean id="pum" class="org.springframework.data.jpa.support.MergingPersistenceUnitManager"> 
    <property name="persistenceXmlLocations"> 
    <list> 
    <value>classpath*:META-INF/persistence.xml</value> 
    </list> 
    </property> 
    <property name="defaultDataSource" ref="dataSource"></property> 
</bean> 


<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="persistenceUnitName" value="LineManagement" /> 
    <property name="persistenceUnitManager" ref="pum"></property> 
    <property name="jpaVendorAdapter"> 
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
      <property name="generateDdl" value="false" /> 
      <property name="showSql" value="false" /> 
      <property name="databasePlatform" ref="cpsHibernateDialectClassName" /> 
     </bean> 
    </property> 

です。それは私にエラーを与える java.lang.NoSuchMethodError:org.springframework.data.jpa.support.MergingPersistenceUnitManager.getPersistenceUnitInfo(Ljava/lang/String;)Lorg/springframework/orm/jpa/persistenceunit/MutablePersistenceUnitInfo;

私はこのエラーをどのように私に与えるかわからない。私の理解から、MergingPersistenceUnitManagerはDefaultPersistenceManagerを拡張しています。私が疑うことは、紛争があるかもしれないということだけです。

ここに私の依存関係です。 spring-orm-3.0.2-RELEASE.jarおよびspring-data-jpa-1.0.3-RELEASE.jarがあります。

私は古代のプログラミングソリューションに戻ることができますが、それはちょうど箱の中で動くべきではありませんか?

答えて

1

spring-ormとspring-data-jpaのバージョンが一致しません。一般的に、任意のバージョンではうまくいっているとは限りません。

MutablePersistenceUnitInfo getPersistenceUnitInfo - メソッドMergingPersistenceUnitManagerから存在しない(または実際にはスーパーDefaultPersistenceUnitManagerだから)バージョンORMバージョン3.0.2です。

バージョン3.0.5の同じクラスから、この方法を見つけることができます。DefaultPersistenceUnitManager.javaまた、maven pom for spring-data-jpa-1.0.3にspring-orm 3.0.5への依存関係がリストされています。したがってあなたの問題はsprin-ormバージョン3.0.5を使用して解決されます。

+0

優秀、ありがとうございます。私はこれを早めにチェックしていないとばかげている。 – Hrishikesh

関連する問題