hibernate 中的 lazy=”proxy” 和 lazy=”no-proxy” 的区别

Posted 晨曦-荒微凉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate 中的 lazy=”proxy” 和 lazy=”no-proxy” 的区别相关的知识,希望对你有一定的参考价值。

网上找到个描述的很精妙的例子

Child   <-   many-to-one   ->Parent   
    
  class   Child   {   
      private   Parent   parent;   
    
      public   Parent   getParent   (){   
          return   this.parent;//访问了实例变量   
      }   
        
  }   
    
  class   Parent   {   
      private   String   name;   
    
      public   String   getName(){   
          return   this.name;//访问了实例变量   
      }   
    
      public   void   f(){   
          System.out.println("invokeing   f()");//没有访问实例变量   
      }   
  }   
    
  如果   many-to-one  
的lazy设为proxy,当child.getParent().getName()或child.getParent().f()时,parent都
会被抓取,若设为no-proxy,调用child.getParent().f()时,parent是不会被抓取的,同时这种方式需要编译时字节码增
强,否则和proxy没区别。

以上是关于hibernate 中的 lazy=”proxy” 和 lazy=”no-proxy” 的区别的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate 中的 lazy=”proxy” 和 lazy=”no-proxy” 的区别

hibernate 中的 lazy=”proxy” 和 lazy=”no-proxy” 的区别

关于延迟加载(lazy)和强制加载(Hibernate.initialize(Object proxy) )

Hibernate5-多对一双向关联-fetch="select",lazy="proxy"

Hibernate5-多对一双向关联-fetch="select",lazy="proxy",在一的一方的class标签中添加

解决Hibernate:could not initialize proxy - no Session