OpenSessionInViewFilter 的解析

OpenSessionInViewFilter的作用是延时session的关闭,直到request结束,这样做的目地是防止hibenrate lasy load出现异常的情况。如果isSingleSession设置成true,表示一个request的生命周期内,都使用一个session。false表示调用多少dao层的方法就用多少个session,但是这些session会延时到一个request结束时才关闭。

 

同时会默认设置flush mode(如果没有设置flushMode)为never的方式,也就是不会更新状态到数据库。当事务配置为required或者new等事务环境中,有数据需要更新到数据库时,会出现异常。

 

缺点在于:如果request时间很长,会造成session占用过长,会出现连接池连接不够的情况。

你可能感兴趣的:(DAO)