2010-06-21 4 views
1

В моем webapp содержится много объектов entityManagerFactories (DB), каждое из которых имеет свое уникальное имя, например entityManagerFactoryApp, entityManagerFactoryBusiness, entityManagerFactoryForum ... и т. Д.Когда entityManagerFactory не называется «entityManagerFactory»

В 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> 

Но когда работает, весна жалуется NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' is defined

Но мои EMFs не названы «EntityManagerFactory», я кода поиска OpenEntityManagerInViewFilter и найти setEntityManagerFactoryBeanName() метод, но как я должен установить его значение в web.xml? Кроме того, у меня есть несколько EMF, shoild Я определяю несколько OpenEntityManagerInViewFilter s в web.xml?

Спасибо в продвижении.

Среды: Spring 3.0.2, Hibernate 3.5.1.Final, смола 4.0.7, JPA2 (спящий режим JPA--2,0-апи)

ответ

5

OpenEntityManagerInViewFilter является подклассом GenericFilterBean, который автоматически переводит параметры фильтра инициализации в свойства бобов. Таким образом, чтобы установить entityManagerFactoryBeanName свойство на фильтре, просто использовать Init-параметров:

<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 устанавливается соответствующим образом.

+0

Спасибо, это работает! – smallufo

Смежные вопросы