`

OpenEntityManagerInViewFilter

阅读更多
OpenEntityManagerInView和Hibernate的OpenSessionInView一样,服务端在接收到一个请求的时候开启EntityManager,在请求结束的时候才去关闭这个EntityManager,和JpaDaoSupport一起可以很好地工作。

使用OpenEntityManagerInView可以解决JPA延迟加载出现的LazyInitialize异常。如果不使用JPA的OpenEntityManagerInViewFilter,那么当使用玩getJpaTemplate().persist()或者remove()方法后,Spring就会自动关闭EntityManager,因此,你使用了延迟加载的对象加载属性的时候将会出现LazyInitialize异常。

OpenEntityManagerInViewFilter会把连接放到线程池里面,不是马上关闭。因此,在请求的过程当中,我们可以随时使用这个EntityManager。当请求结束之后才会关闭这个EntityManager。

不过在高并发的时候,EntityManager的生命周期会比较长(因为请求开始到请求结束这段时间长),EntityManager不会立刻关闭,导致连接池连接数占用的问题。因此高并发的系统最好不要使用OpenEntityManagerInView模式。

配置如下,在web.xml里面添加一个filter:
<filter>  
<filter-name>jpaFilter</filter-name>  
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>  

<filter-mapping>  
<filter-name>jpaFilter</filter-name>  
<url-pattern>/*</url-pattern>  
</filter-mapping>
分享到:
评论

相关推荐

    DWR+JPA DWR直接访问SERVICE层,并直接处理DAO返回的BEAN.doc

    为了解决这个问题,我们需要在`web.xml`中配置Spring的`OpenEntityManagerInViewFilter`。这个过滤器保持EntityManager在请求生命周期内开放,使得懒加载(lazy-loading)能在DWR调用结束后仍然有效。 配置`...

    springmvc +shiro+querydsl+jpa框架多数据源配置详细说明

    在 hopsuncms\WebRoot\WEB-INF\web.xml 中添加 openEntityManagerInViewFilter 过滤器,以便实现事物管理。 ``` &lt;filter-name&gt;openEntityManagerInViewFilter &lt;filter-class&gt;org.springframework.orm.jpa....

    com.springsource.javax.persistence-2.0.0.jar.zip

    Spring通过其开放资源管理器(OpenEntityManagerInViewFilter)和事务管理器(PlatformTransactionManager)来支持JPA,使得在Spring应用中使用JPA变得简单而高效。 在Maven中,这个jar文件通常作为依赖项添加到...

    集成spring的hibernate懒加载

    1. **Open Session in View (OSIV)**:这是一种将Session保持开放到视图渲染完毕的设计模式,通常通过Spring的`OpenEntityManagerInViewFilter`或`OpenSessionInViewInterceptor`实现。但这可能导致长时间的数据库...

    JPA小小的demo 源码与jar 文件 JPA

    在JPA应用中,通常会有一个`OpenEntityManagerInViewFilter`,它确保在每个HTTP请求的上下文中都有一个活动的EntityManager。 `index.jsp`是Web应用的入口点,可能包含一些展示数据或交互的逻辑。在JPA应用中,你...

    将_Shiro_作为应用的权限基础_五:SpringMVC+Apache_Shiro+JPA(hibernate)整合配置

    - **OpenEntityManagerInViewFilter**:此过滤器使得`EntityManager`能够在视图渲染过程中保持打开状态。这是Spring针对Hibernate的非JPA实现使用的`OpenSessionInViewFilter`的JPA版本。 #### 2. ...

    SPRING API 2.0.CHM

    OpenEntityManagerInViewFilter OpenEntityManagerInViewInterceptor OpenPersistenceManagerInViewFilter OpenPersistenceManagerInViewInterceptor OpenSessionInViewFilter OpenSessionInViewFilter ...

    通俗易懂的SSSP整合&分页教程(含配套资料)

    CRUD、翻页整合示范外,还涉及到了诸多企业开发时的细节:基于Restful 风格的 URL、使用 JPA 二级缓存、使用 @ResponseBody 注解完成 Ajax、把超链接转换为 DELETE 请求、OpenEntityManagerInViewFilter、修改状态下...

    Spring集成JPA配置懒加载报错解决方案

    &lt;filter-class&gt;org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter &lt;filter-name&gt;openEntity &lt;url-pattern&gt;/* ``` 报错二:no serializer 懒加载报错的第二个问题是no serializer报错。...

Global site tag (gtag.js) - Google Analytics