Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
Transaction tr = session.beginTransaction();
Pet pet = (Pet) session.load(Pet.class, 3);
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
Transaction tr = session.beginTransaction();
Pet pet = (Pet) session.get(Pet.class, 3);
/** get: * 控制台有select语句 * 1:用get() 总是会和数据库交互 * 2: pet.getPetName() * 如果此对象不存在访问其属性则抛出:java.lang.NullPointerException 异常
*/
/** load: * 2: pet.getPetName() * 如果此对象不存在访问其属性则抛出:nofoundClass异常
*/
1: Load方法可返回实体的代理类实例,而get方法永远直接返回实体类。 2:load方法可以充分利用内部缓存和二级缓存中的现有数据,而get方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取
效率上肯定是load 更高
相关资源:敏捷开发V1.0.pptx