解决懒加载的no-session问题

懒加载中为什们会出现no-session问题

     我们知道hibernate支持延迟加载,也称为懒加载,就是在使用对象的时候才会发送sql语句,不使用对象的时候就不会发送sql语句。我们开发时常常需要将从数据库中获取的数据转发到页面中显示,页面只有显示的时候才用到对象,这时才发送sql语句,但是问题来了,以往我们学到的为了在sevice层控制事务最多将session提到sevice层,但是懒加载只有在session打开的状态下才有效,这样导致在页面使用对象时,session已经关闭,出现no-session问题

如何解决

使用过滤器技术扩大no-session范围图解

解决懒加载的no-session问题_第1张图片

在web.xml中配置一下过滤器即可,下面是过滤器配置


  
    openSessionInViewFilter
    org.springframework.orm.hibernate5.support.OpenSessionInViewFilter
  
  
    openSessionInViewFilter
    /*
  

你可能感兴趣的:(hibernate)