[英]No bean named 'entityManagerFactory' available when module descriptor is added
[英]When entityManagerFactory is not named "entityManagerFactory"
我的 web 應用程序包含許多 entityManagerFactories (DB)。 每個都有自己唯一的名稱,例如entityManagerFactoryApp 、 entityManagerFactoryBusiness 、 entityManagerFactoryForum等。
在 web 應用程序中,我必須添加OpenEntityManagerInViewFilter
以實現“在視圖中打開會話”模式。
<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:未定義名為“entityManagerFactory”的 bean
但是我的 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)
OpenEntityManagerInViewFilter
是的一個子類GenericFilterBean
,其中自動轉換濾波器初始化參數到bean屬性。 因此,要在過濾器上設置entityManagerFactoryBeanName
屬性,只需使用 init-param:
<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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.