0

我有一个 Spring 项目(使用 JPA2.1)并且 persistenceUnitName 在该项目中被定义为“默认”。

我已经在另一个spring批处理项目(也使用spring-JPA2.1)中定义了这个项目的依赖关系(使用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

请建议我一些解决方案。实际上,这与hibernate以这种方式工作,但迁移给我们带来了困难。

4

1 回答 1

0

我在导入的项目中创建了一个新模块,并从中分离了 persistence.xml。然后我导入了模块(模块现在只有我需要在另一个项目中导入的类,而不是整个核心)。这样它工作正常。

于 2014-09-09T02:36:04.447 回答