sma*_*ufo 1 java spring servlets jpa servlet-filters
我的webapp包含许多entityManagerFactories(DB),每个都有其唯一的名称,例如entityManagerFactoryApp,entityManagerFactoryBusiness,entityManagerFactoryForum ...等.
在webapp中,我必须添加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>
Run Code Online (Sandbox Code Playgroud)
但是当跑步时,Spring抱怨道 NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' is defined
但是我的EMF没有命名为"entityManagerFactory",我查找了OpenEntityManagerInViewFilter的代码和find setEntityManagerFactoryBeanName()
方法,但是我应该如何在web.xml中设置它的值呢?而且,我有多个EMF,我OpenEntityManagerInViewFilter
在web.xml中定义了多个?
提前致谢.
环境:Spring 3.0.2,Hibernate 3.5.1.Final,Resin 4.0.7,JPA2(hibernate-jpa-2.0-api)
OpenEntityManagerInViewFilter
是它的子类GenericFilterBean
,它自动将过滤器init参数转换为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>
Run Code Online (Sandbox Code Playgroud)
你需要其中一个EntitymanagerFactory
,相应的entityManagerFactoryBeanName
设置.
归档时间: |
|
查看次数: |
1846 次 |
最近记录: |