Использовать OpenEntityManagerInViewFilter в моем проекте? - PullRequest
0 голосов
/ 16 февраля 2012

из-за проблем с отложенной загрузкой в ​​спящем режиме, я пытаюсь настроить источники OpenEntityManagerInViewFilter.

Но я не могу заставить его работать с моим уже работающим приложением. Что еще нужно добавить от добавления в web.xml и создания applicationContext.xml, чтобы мне пришлось использовать Open EM?

Спасибо

Я добавил в web.xml:

    <filter>
        <filter-name>
            OpenEntityManagerInViewFilter
        </filter-name>
            <filter-class>
                org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
            </filter-class>
            <init-param>
                <param-name>singleSession</param-name>
                <param-value>true</param-value>
            </init-param>
            <init-param>
                <param-name>flushMode</param-name>
                <param-value>AUTO</param-value>
            </init-param>
    </filter>
    <!-- Include this if you are using Hibernate -->
    <filter-mapping>
        <filter-name>OpenEntityManagerInViewFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- Spring config -->
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

    <listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
  </listener>

и applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">

</beans>

Я уже могу развернуть свое приложение, но при попытке запустить его выдает ex:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' is defined

Ответы [ 2 ]

0 голосов
/ 10 апреля 2013

Создайте entityManagerFactory в вашем applicationContext.xml следующим образом:

<!-- Add JPA support -->
 <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="loadTimeWeaver">
        <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>
    </property>
 </bean>

 <!-- Add Transaction support -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
0 голосов
/ 25 мая 2012

Поскольку ошибка предполагает, что вы не определили entityManagerFactory в ваших конфигурационных файлах Spring.Или это определено с другим именем.Попробуйте добавить этот параметр инициализации в конфиг в файле web.xml

<init-param>
    <param-name>entityManagerFactoryBeanName</param-name>
    <param-value>entityManagerFactory</param-value>
</init-param>
...