spring persistence annotation bean指定默认持久性单元

时间:2015-05-06 14:36:47

标签: java spring hibernate jpa spring-data-jpa

我有一个现有的项目,目前有一个实体管理器,我需要为一个单独的数据源添加另一个。实体管理器在spring xml应用程序上下文中定义,并以

连接
@PersistenceContext
private EntityManager entityManager;

当我在启动弹簧抱怨时连接我的其他实体管理器因为它期望单个bean但找到两个因为我没有在我的原始实体管理器上定义unitname。因此总是调用findDefaultEntityManagerFactory。

我不想去修改@PersistenceContext注释并将单位名称添加到所有这些注释中,这不是一个选项。

因此,搜索之后的方法似乎是定义一个在PersistenceAnnotationBeanPostProcessor类中的defaultPersistenceUnitName。阅读本课程的评论有以下注释

<p>Note: A default PersistenceAnnotationBeanPostProcessor will be registered
 * by the "context:annotation-config" and "context:component-scan" XML tags.
 * Remove or turn off the default annotation configuration there if you intend
 * to specify a custom PersistenceAnnotationBeanPostProcessor bean definition.

所以我的问题如下:

  1. 如何关闭默认注释配置,如上面的注释?这是否只是从xml中删除它?如果我删除它将如何自动装配我所有其他类

  2. 如果上下文:annotation-config不在spring xml文件中,该文件定义了实体管理器,但是在一个导入到该文件中的文件中,会发生什么?我是否也需要将其从那里删除?

  3. 由于

0 个答案:

没有答案