我正在尝试在我的项目中添加一个数据库/模式/ persistenceUnit,我收到错误:
没有定义[javax.persistence.EntityManagerFactory]类型的唯一bean:期望的单个bean但找到了2
我谷歌/ api分配,无法找到为什么春天抱怨我的配置.
这是我的applicationContext.xml的一部分
factorybean">
sql" value="${show.hibernate.sql}" />
MysqL5Dialect" />
factorybean">
sql" value="${show.hibernate.sql}" />
MysqL5Dialect" />
一些问题:
>我需要两个tx:注释驱动吗?
>我是否需要在工厂中指定persistenceUnitName?
我在春季论坛(LINK)中记录了我的digg
那就好了……任何帮助都会很高兴!
最佳答案
使用Spring,您只需要一个EntityManagerFactory.
您正在寻找的是在章节13.5.1.4的Spring文档中描述:“处理多个persitence单元”
您正在寻找的是在章节13.5.1.4的Spring文档中描述:“处理多个persitence单元”
我复制/粘贴文字:
“13.5.1.4处理多个持久性单元
例如,对于依赖于多个持久性单元位置的应用程序(存储在类路径中的各种JARS中),Spring提供PersistenceUnitManager作为中央存储库并避免持久性单元发现过程,这可能很昂贵.默认实现允许指定多个位置,这些位置被解析并稍后通过持久性单元名称检索. (默认情况下,会在类路径中搜索Meta-INF / persistence.xml文件.)
Meta-INF/persistence.xmlfactorybean">
默认实现允许自定义PersistenceUnitInfo实例,然后通过其属性进行声明性地提供给JPA提供程序,这些属性会影响所有托管单元,或者通过PersistenceUnitPostProcessor进行编程,这允许选择持久性单元.如果没有指定PersistenceUnitManager,则由LocalContainerEntityManagerfactorybean在内部创建并使用一个.“