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();
}
}