Hibernate中get()和load()的区别

开发 后端
本文将简单谈谈Hibernate中load和get的两大区别,包括具体实践的情况。作者最后认为效率上肯定是load()更高。

Hibernate中get()和load()的区别

Java代码

  1. Configuration cfg = new Configuration().configure();     
  2. SessionFactory sf = cfg.buildSessionFactory();     
  3. Session session = sf.openSession();     
  4. Transaction tr = session.beginTransaction();    
  5.  
  6. Configuration cfg = new Configuration().configure();  
  7. SessionFactory sf = cfg.buildSessionFactory();  
  8. Session session = sf.openSession();  
  9. Transaction tr = session.beginTransaction();Java代码   
  10. Pet pet = (Pet) session.load(Pet.class, 3);         
  11.  
  12. Pet pet = (Pet) session.load(Pet.class, 3);   /**load: 

   * 控制台并没有打印任何select信息
   * 1:返回的是代理对象 ,没有真正的访问数据库
   * 2:如果对象不存在访问其属性则抛出:ObjectNotFoundException异常
   * 3: pet.getPetName();现在访问pet对象的属性,这样才真正的访问数据库,
   */

Java代码

  1. Configuration cfg = new Configuration().configure();     
  2. SessionFactory sf = cfg.buildSessionFactory();     
  3. Session session = sf.openSession();     
  4. Transaction tr = session.beginTransaction();    
  5.  
  6. Configuration cfg = new Configuration().configure();  
  7. SessionFactory sf = cfg.buildSessionFactory();  
  8. Session session = sf.openSession();  
  9. Transaction tr = session.beginTransaction();Java代码   
  10. Pet pet = (Pet) session.get(Pet.class, 3);    
  11.  
  12. Pet pet = (Pet) session.get(Pet.class, 3);   
  13.  
  14.  /** get:  
  15.    * 控制台有select语句  
  16.    * 1:用get() 总是会和数据库交互  
  17.    * 2: pet.getPetName()  
  18.    * 如果此对象不存在访问其属性则抛出:java.lang.NullPointerException 异常  
  19.    */ 

效率上肯定是load 更高

【编辑推荐】

  1. Hibernate中generator属性的意义
  2. hibernate Key Generator 主键生成方式
  3. Hibernate的主键生成机制
  4. hibernate的Query cache
  5. Hibernate中hbm的generator属性
责任编辑:彭凡 来源: javaeye
相关推荐

2009-06-26 16:23:12

Hibernate gHibernate l

2009-06-12 16:24:44

Hibernate lHibernate g

2009-09-22 13:14:29

Hibernate gHibernate l

2011-06-08 11:02:14

GetPost

2011-08-11 10:22:59

ibatishibernate

2011-07-20 17:31:12

C++

2009-06-24 08:02:15

Hibernateupdate与save

2011-07-20 17:48:07

C++

2011-06-08 11:05:38

getpost

2009-06-18 11:43:40

Hibernate uHibernate s

2014-07-24 10:00:21

2009-06-12 15:36:24

Hibernate fcreateQuery

2009-06-12 14:52:21

cascadeinverseHibernate

2009-06-12 16:17:48

Hibernate l

2009-06-16 15:03:53

Hibernate保存Hibernate

2009-09-22 13:12:25

Hibernateibatis

2009-09-22 09:40:03

cascade和invHibernate

2010-03-30 12:30:45

Oracle Hibe

2019-02-14 19:00:13

2009-06-30 14:11:00

Hibernate缓存
点赞
收藏

51CTO技术栈公众号