gpt4 book ai didi

java - entityManagerFactory 未命名时 "entityManagerFactory"

转载 作者:行者123 更新时间:2023-11-29 08:17:50 26 4
gpt4 key购买 nike

我的 webapp 包含许多 entityManagerFactories (DB)。每个都有自己独特的名称,例如 entityManagerFactoryAppentityManagerFactoryBusinessentityManagerFactoryForum

在 webapp 中,我必须添加 OpenEntityManagerInViewFilter 以实现“在 View 中打开 session ”模式。

<filter>
<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

运行Spring时抛出如下错误:

NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' isdefined

但是我的 entityManagerFactories 都没有被命名为 entityManagerFactory

我查看了 OpenEntityManagerInViewFilter 的代码,找到了 setEntityManagerFactoryBeanName() 方法。我如何在 web.xml 中设置它的值?

此外,由于我有多个 EMF,我是否应该在 web.xml 中定义多个 OpenEntityManagerInViewFilter

环境:Spring 3.0.2、Hibernate 3.5.1.Final、Resin 4.0.7、JPA2 (hibernate-jpa-2.0-api)

最佳答案

OpenEntityManagerInViewFilterGenericFilterBean 的子类,它自动将过滤器初始化参数转换为 bean 属性。因此,要在过滤器上设置 entityManagerFactoryBeanName 属性,只需使用一个初始化参数:

<filter>
<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
<init-param>
<param-name>entityManagerFactoryBeanName</param-name>
<param-value>entityManagerFactoryApp</param-value>
</init-param>
</filter>

每个 EntitymanagerFactory 都需要其中之一,并相应地设置 entityManagerFactoryBeanName

关于java - entityManagerFactory 未命名时 "entityManagerFactory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3088754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com