微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – JPA多余性单元错误

我正在尝试在我的项目中添加一个数据库/模式/ persistenceUnit,我收到错误

没有定义[javax.persistence.EntityManagerFactory]类型的唯一bean:期望的单个bean但找到了2

我谷歌/ api分配,无法找到为什么春天抱怨我的配置.

这是我的applicationContext.xml的一部分

  factorybean">

        vendorAdapter">
            vendor.HibernateJpavendorAdapter">
                sql" value="${show.hibernate.sql}" />
                MysqL5Dialect" />
            factorybean">
    vendorAdapter">
        vendor.HibernateJpavendorAdapter">
            sql" value="${show.hibernate.sql}" />
            MysqL5Dialect" />
        

一些问题:

>我需要两个tx:注释驱动吗?
>我是否需要在工厂中指定persistenceUnitName?

我在春季论坛(LINK)中记录了我的digg

那就好了……任何帮助都会很高兴!

最佳答案
使用Spring,您只需要一个EntityManagerFactory.
您正在寻找的是在章节13.5.1.4的Spring文档中描述:“处理多个persitence单元”

我复制/粘贴文字

“13.5.1.4处理多个持久性单元

例如,对于依赖于多个持久性单元位置的应用程序(存储在类路径中的各种JARS中),Spring提供PersistenceUnitManager作为中央存储库并避免持久性单元发现过程,这可能很昂贵.认实现允许指定多个位置,这些位置被解析并稍后通过持久性单元名称检索. (认情况下,会在类路径中搜索meta-inf / persistence.xml文件.)

sspath:/my/package/**/custom-persistence.xmlsspath*:meta-inf/persistence.xmlfactorybean">
  munit"/>

认实现允许自定义PersistenceUnitInfo实例,然后通过其属性进行声明性地提供给JPA提供程序,这些属性会影响所有托管单元,或者通过PersistenceUnitPostProcessor进行编程,这允许选择持久性单元.如果没有指定PersistenceUnitManager,则由LocalContainerEntityManagerfactorybean在内部创建并使用一个.“

原文地址:https://www.jb51.cc/spring/432193.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐