HIbernate中get()和load()之间的区别
2017-01-02 20:49
281 查看
这两个方法都用来加载持久化类对象(查询),参数有两个get / load(Class clazz,Serialize id),第一个是需要查找的对象类型,第二个是对应的主键id。
Usertable user=(Usertable)session.get(Usertable.class, 2);
//或者Usertable user=(Usertable)session.load(Usertable.class, 2);
区别:
1,load()查询会先到缓存中去查,如果没有则返回一个代理对象(不马上到数据库中查找),等到后面使用这个代理对象的时候,才到数据中查找相应的信息。若还是没有找到就抛出异常。get()查询则是先到缓存中去查,如果没有就直接到数据库中查询,还没有的话就返回null。
2,load()查询支持延迟加载,所谓延迟加载就是用到后才到数据库中查询,而get()查询不支持。
3,总的来说,使用load()方法需要确保数据库中存在相应的值,否则就会抛异常,而get()查询则是试探性的获取,如果没有就返回null
Usertable user=(Usertable)session.get(Usertable.class, 2);
//或者Usertable user=(Usertable)session.load(Usertable.class, 2);
区别:
1,load()查询会先到缓存中去查,如果没有则返回一个代理对象(不马上到数据库中查找),等到后面使用这个代理对象的时候,才到数据中查找相应的信息。若还是没有找到就抛出异常。get()查询则是先到缓存中去查,如果没有就直接到数据库中查询,还没有的话就返回null。
2,load()查询支持延迟加载,所谓延迟加载就是用到后才到数据库中查询,而get()查询不支持。
3,总的来说,使用load()方法需要确保数据库中存在相应的值,否则就会抛异常,而get()查询则是试探性的获取,如果没有就返回null
相关文章推荐
- getHibernateTemplate之load()与get()之间的区别
- 从源码上分析hibernate的load和get之间的区别
- hibernate中 get和load之间的区别
- getHibernateTemplate.load() 和get()之间的区别
- getHibernateTemplate.load() 和get()之间的区别
- getHibernateTemplate.load() 和get()之间的区别
- hibernate 中get和load的区别(浅显)
- Hibernate get() load()的区别
- Hibernate---load和get的区别
- hibernate持久化方法get和load的区别
- Hibernate中get和load方法的区别
- Hibernate加载数据时get和load方法的区别
- Hibernate中load和get的区别
- Hibernate中get和load的区别
- Hibernate中get和load方法的区别
- Hibernate中Session.get()/load()之区别
- Hibernate get() load() 方法区别
- Hibernate 中 get与load方法区别
- hibernate里load方法和get方法的区别
- Hibernate的get和load的区别