У меня есть настройка проекта, где у меня есть модуль, который присутствует в папке WEB-INF / lib родительского файла war.Этот модуль содержит файл persistence.xml и сущность, которую мне нужно загрузить, когда контейнер JPA загружается во время запуска.Каким-то образом мне нужно объединить персистентные единицы войны и библиотеку.файл persistence.xml моей войны присутствует в WEB-INF / classes / META-INF, поэтому он будет принимать WEB-INF / classes в качестве корня персистентности и не будет понимать сущность из моего lib jar.Это я узнал трудным путем.
Я наткнулся на нескольких людей, предлагающих решения этой проблемы
http://ancientprogramming.blogspot.com/2007/05/multiple-persistencexml-files-and.html И я также обнаружил, что существует проект Spring-Data-jpa, в котором есть MergingPersistenceUnitManager, который объединит классопределения сущностей.
Вот моя конфигурация
<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.
Я могу вернуться к древнему программному решению, но разве оно не должно работать изкоробка