这次我们来谈一下Hibernate3.2 Session加载数据时get和load方法的区别(Hibernate 3以后的版本就用get()方法取代find()这个方法了),其实这个在网上有很多的论述,可大多语焉不详或经不起实践的推敲,让很多初学者学的满腹疑窦,现在我给大家讲解一下:1. 对于Hibernate get方法,Hibernate会确认一下该id对应的数据是否存在,首先在session
原创
2013-01-17 09:10:00
233阅读
load:
使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,将抛出ObjectNotFoundException异常,所说的load方法抛异常是指在使用该对象的数据时,数据库中不存在该数据时抛异常,而不是在创建这个对象时
转载
精选
2013-02-21 17:14:39
351阅读
Hibernate中有两个极为相似的方法get()与load(),他们都可以通过指定的实体类与ID从数据库中读取数据,并返回对应的实例。1.对于get(直接取)方法,hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,还没有就查询数据库,数据库中没有就返回null。2.load方法加载实体对象的时候,根据映射文件上类级别的lazy属性的配置(默认为true),分情况讨论:(1)若为true,则首先在Session缓存中查找,看看该id对应的对象是否存在,不存在则使用延迟加载,返回实体的代理类对象(该代理类为实体类的子类,由CGLIB动态生成)。等到具体使用该.
转载
2012-04-23 00:58:00
49阅读
2评论
Hibernate中根据Id单条查询获取对象的方式有两种,分别是get()和load(),来看一下这两种方式的区别。 1. get() 使用get()来根据ID进行单条查询: 1 User user=session.get(User.class, "1"); 1 User user=session.
转载
2018-04-14 22:23:00
69阅读
@Test public void testLoad() { Session session = sessionFactory.getCurrentSession(); session.beginTransaction(); Teacher t =
原创
2022-02-25 16:05:30
97阅读
hibernate中get方法和load方法的根本区别
如果你使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,那没办法,只能抛异常ObjectNotFoundException,所说的load方法抛异常是指在使用该对象的数
转载
2016-10-31 13:57:09
890阅读
1. get是立即执行sql语句,load是只有访问了对象的非id属性时才执行sql语句 2. get获取一个对象时,如果找不到,则返回null, load获取对象时,如果找不到,则抛出ObjectNotFoundException 3. get获取到的对象是一个真实类型的对象,load获取到的对象是一个代理对象,代理对象的类是Hibernate自己创建的类,
原创
2017-03-27 20:00:59
934阅读
Hibernate中Session的get和load
推荐
原创
2022-09-22 11:16:44
360阅读
点赞
1评论
Hibernate中根据Id单条查询获取对象的方式有两种,分别是get()和load(),来看一下这两种方式的区别。 1. get() 使用get()来根据ID进行单条查询:User user=session.get(User.class, "1"); 当get()方法被调用的时候就会立即发出SQL语句:Hibernate: select user0_.ID as...
原创
2021-07-28 15:24:41
104阅读
1. get是立即执行sql语句,load是只有访问了对象的非id属性时才执行sql语句 2. get获取一个对象时,如果找不到,则返回null, load获取对象时,如果找不到,则抛出ObjectNotFoundException 3. get获取到的对象是一个真实类型的对象,load获取到的对象是一个代理对象,代理对象的类是Hibernate自己创建的类,该类是
原创
2017-03-27 20:01:32
553阅读
get和load方式是根据id取得一个记录下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。1.从返回结果上对比:load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常get方法检索不到的话会返回null2.从检索执行机制上对比: get方法和find方法都是直接从数据库中检索 而load方法的执行则比较复杂首先查
转载
精选
2014-03-09 15:41:14
610阅读
边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。 1.从返回结果上对比: load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 ge...
原创
2023-04-20 12:00:23
50阅读
get和load方式是根据id取得一个记录下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。
转载
2022-12-06 10:36:46
29阅读
get和load方式是根据id取得一个记录
下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。
1.从返回结果上对比:
load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常
get方法检索不到的话会返回null
2.从检索执行机制上对比: get方法和find
转载
2012-07-04 16:40:55
362阅读
get和load方式是根据id取得一个记录 下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。1.从返回结果上对比: load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null2.从...
转载
2015-03-11 16:22:00
38阅读
2评论
最主要区别在于,检索策略不同。无论get和load,首先都会去session缓存中看有没有现成的数据。没有的话,get会采用立即检索策略。即:将对象从数据库检索出来并返回,不使用代理类。load的话,如果lazy="true",会采用延迟加载策略。即:返回一个仅包含有ID主键的代理类对象,当调用对象...
转载
2015-04-07 17:53:00
82阅读
2评论
Hibernate中get与loadget、load的共同点get和load都是根据ID来记载对象的不同点当加载的数据在数据库不存在时,get方法返回的是null
原创
2022-06-24 17:36:41
96阅读
Users)session.load(Users.class, userId); get读取:Java代码 Users user = (Users)sessi...
原创
2023-07-10 10:43:19
34阅读