0

私はSpringプロジェクト(JPA2.1を使用)を持っており、persistenceUnitNameはそのプロジェクトで「デフォルト」として定義されています。

このプロジェクトの依存関係を (maven を使用して) 定義しました (別のプロジェクトで spring-core.jar を使用して、いくつかのエンティティ クラスやその他のものを再利用します)。

このプロジェクトで同じ persistenceUnitName を定義すると、persistenceUnitName の競合エラーが発生します。

<bean id="entityManagerFactory"
          class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
          p:persistenceUnitName="default"
          p:jpaVendorAdapter-ref="jpaVendorAdapter"
          p:dataSource-ref="dataSource" />

しかし、このプロジェクトで persistenceUnitName の名前を変更すると、インポートされたプロジェクトの persistenceUnitName (「デフォルト」) を作成できません。そのため、インポートされたプロジェクトのJPAクラスを作成できません(pom.xmlで依存関係を定義しました)

Error creating bean with name 'SampleJpa': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'default' is defined

解決策を教えてください。実際、これは休止状態でこのように機能していましたが、移行により苦労しています。

4

1 に答える 1

0

インポートしたプロジェクトに新しいモジュールを作成し、それから persistence.xml を分離しました。そして、モジュールをインポートしました(モジュールには、コア全体ではなく、別のプロジェクトにインポートする必要があるクラスのみが含まれるようになりました)。このようにうまくいきます。

于 2014-09-09T02:36:04.447 に答える