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

来源:互联网 发布:无线网卡发现不了网络 编辑:程序博客网 时间:2024/05/15 22:30

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

 

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没区别。

原创粉丝点击