Hibernate session.get()和session.load()的区别

Hibernate session.get()和session.load()的区别

get()方法会立即发送sql语句查询数据库,返回实际查询结果

User user = session.get(id,User.class);

load()方法不会立即发送sql语句查询数据库,返回的是代理,只有真正使用是才会查询数据库

User userProxy = session.load(id,User.class);

String name = userProxy.getName();

public class UserProxy extends User{

  private int id;

  private User user;

  @Override

  public String getName(){

    if(user == null){

      user = session.get(id);

      if(user == null){

        throw new RuntimeException();

      }

    }

    return user.getName();

  }

}

posted on 2017-02-20 12:05  LZHL  阅读(347)  评论(0编辑  收藏  举报

导航