本人对hibernate对延迟加载的类一直很头疼,加载到页面时因为session关闭就会报出异常,查看网上解决办法是配置
OpenSessionInViewFilter
过滤器。
此过滤器经过网上查看发现有3个重要属性
flushMode
FlushMode.AUTO:
调用Session的查询方法时,清理缓存,注意:这条规则必须保证显式开启的事务中,对于outside a transaction 调用Session.commit()时,清理缓存 调用Session.flush()时,清理缓存 FlushMode.COMMIT: 调用Session的查询方法时,不清理缓存 调用Session.commit()时,清理缓存 调用Session.flush()时,清理缓存 FlushMode.NEVER(MANUAL): 调用Session的查询方法时,不清理缓存 调用Session.commit()时,不清理缓存 调用Session.flush()时,清理缓存
FlushMode.ALWAYS:未发现和auto有什么区别。
调用Session的查询方法时,清理缓存,注意:这条规则必须保证显式开启的事务中,对于outside a transaction
调用Session.commit()时,清理缓存 调用Session.flush()时,清理缓存此博主讲的很详细
http://blog.csdn.net/looyo/article/details/6309136
singleSession
是否单例session
默认为true,
false:为可以被打开多个,更新操作时会出现异常
sessionFactoryBeanName
session工厂的bean名字,自己取的名字,用于区分多个session工厂
也是多数据源配置的重要信息,决定哪个session是页面发送完毕才关闭