Hibernate -- lazy加载

匿名 (未验证) 提交于 2019-12-03 00:30:01

类级别懒加载:



//类级别懒加载     //load方法     //class lazy属性     //默认值:true load获得时,会返回代理对象,不查询数据库,使用时才查询     public void fun1() {         Session session = HibernateUtils.openSession();         session.beginTransaction();         //--------------------------------------         Customer load = (Customer) session.load(Customer.class, 17);         System.out.println("----------------sql语句未发送");         System.out.println(load.getName());         //--------------------------------------         session.getTransaction().commit();         session.close();     }

lazy :false

//类级别懒加载     //load方法     //class lazy属性     //默认值:false load方法执行就会发送sql语句,和get方法一致     public void fun2() {         Session session = HibernateUtils.openSession();         session.beginTransaction();         //--------------------------------------         Customer load = (Customer) session.load(Customer.class, 19);         System.out.println("----------------sql语句发送");         System.out.println(load.getName());         //--------------------------------------         session.getTransaction().commit();         session.close();     } 


关联级别懒加载的配置以及查询方式:


lazy:false

  //关联级别懒加载     //lazy:false     public void fun2() {         Session session = HibernateUtils.openSession();         session.beginTransaction();         //--------------------------------------         Customer load = (Customer) session.get(Customer.class, 19);          System.out.println("所有的--------sql语句发送");         for (Order o : load.getOrders()) {             System.out.println(o.getName());         }         //--------------------------------------         session.getTransaction().commit();         session.close();     }


fetch:

一次加载多个customer的订单数据

    //关联级别懒加载     //lazy:false     //fetch :subselect     public void fun4() {         Session session = HibernateUtils.openSession();         session.beginTransaction();         //--------------------------------------         List<Customer> list = session.createQuery("from com.huhu.domain.Customer").list();         for (Customer c : list) {             System.out.println(c.getName() + c.getOrders().size());         }         //--------------------------------------         session.getTransaction().commit();         session.close();     }

    //关联级别懒加载     //lazy:true     //fetch :subselect     public void fun5() {         Session session = HibernateUtils.openSession();         session.beginTransaction();         //--------------------------------------         List<Customer> list = session.createQuery("from com.huhu.domain.Customer").list();         System.out.println("使用order时才去数据库查询");         for (Customer c : list) {             System.out.println(c.getName() + c.getOrders().size());         }         //--------------------------------------         session.getTransaction().commit();         session.close();     }

//关联级别懒加载     //lazy:true     //fetch :select     public void fun6() {         Session session = HibernateUtils.openSession();         session.beginTransaction();         //--------------------------------------         System.out.println("customer--------sql语句发送");         Customer load = (Customer) session.get(Customer.class, 17);          System.out.println("order--------sql语句发送");         for (Order o : load.getOrders()) {             System.out.println(o.getName());         }         //--------------------------------------         session.getTransaction().commit();         session.close();     }

 //关联级别懒加载     //lazy:false     //fetch :select     public void fun7() {         Session session = HibernateUtils.openSession();         session.beginTransaction();         //--------------------------------------         Customer load = (Customer) session.get(Customer.class, 17);          System.out.println("所有的--------sql语句发送");         for (Order o : load.getOrders()) {             System.out.println(o.getName());         }         //--------------------------------------         session.getTransaction().commit();         session.close();     }




关联级别懒加载:





 //关联级别懒加载     //lazy:extra     //fetch :select     public void fun8() {         Session session = HibernateUtils.openSession();         session.beginTransaction();         //--------------------------------------         Customer load = (Customer) session.get(Customer.class, 17);          System.out.println("-------查询数量count()------");         System.out.println(load.getOrders().size());         System.out.println("----------查询customer--------");         for (Order o : load.getOrders()) {             System.out.println(o.getName());         }         //--------------------------------------         session.getTransaction().commit();         session.close();     }

//关联级别懒加载     //lazy:extra     //fetch :subselect     public void fun9() {         Session session = HibernateUtils.openSession();         session.beginTransaction();         //--------------------------------------         List<Customer> list = session.createQuery("from com.huhu.domain.Customer").list();         for (Customer c : list) {             System.out.println(c.getName() + "------------" + c.getOrders().size());         }         for (Customer cs : list) {             for (Order o : cs.getOrders()) {                 System.out.println(cs.getName() + "------------" + o.getName());             }         }         //--------------------------------------         session.getTransaction().commit();         session.close();     }




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!