在休眠模式下,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(); } }