在休眠模式下,get()andload()是两种用于获取给定标识符的数据的方法。它们都属于Hibernate会话类。Get()如果给定标识符的会话高速缓存或数据库中没有可用的行,则方法返回null,而load()方法抛出未找到对象的异常。
| 序号 | 键 | 得到() | 加载() |
|---|---|---|---|
1 | 基本的 | 它用于从数据库中获取给定标识符的数据 | 它还用于从数据库中获取给定标识符的数据 |
2 | 空对象 | 找不到给定标识符的对象,则它将返回null对象 | 它将抛出未找到对象的异常 |
3 | 延迟加载 | 它返回完全初始化的对象,因此该方法渴望加载对象 | 它总是返回代理对象,因此此方法是延迟加载对象 |
4 | 性能 | 比它慢, | 它稍微快一点。 |
5, | 用例 | 如果不确定对象是否存在,请使用 | 如果您确定对象存在,则使用 |
Get()Hibernate中的示例@Entity
public class User {
@Id
Integer id;
String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.journaldev.hibernate.util.HibernateUtil;
public class GetExample {
public static void main(String[] args) {
//获取会话工厂以开始事务
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
//获取示例
User user = (User) session.get(User.class, new Integer(2));
System.out.println("User ID= "+user.getId());
System.out.println("User Name= "+user.getName());
//关闭资源
tx.commit();
sessionFactory.close();
}
}Load()Hibernate中的示例@Entity
public class User {
@Id
Integer id;
String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.journaldev.hibernate.util.HibernateUtil;
public class LoadExample {
public static void main(String[] args) {
//获取会话工厂以开始事务
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
//加载示例
User user = (User) session.load(User.class, new Integer(2));
System.out.println("User ID= "+user.getId());
System.out.println("User Name= "+user.getName());
//关闭资源
tx.commit();
sessionFactory.close();
}
}