社区
Java EE
帖子详情
hibernate 中的 get 和 load 的区别
jspxnet
2004-12-22 03:38:29
我测试了一下hibernate 中 get 和 load 的区别,有的地方不太明白。
设 cat 表中没有 ID为1111的数据.
session.get(cat.class, "1111"); //得到null对象
session.load(cat.class,"1111"); //得到的不是空对象,如果你一处理,就包错
get 和 load 在处理上有什么不同,缓存管理上有什么不同.
...全文
200
10
打赏
收藏
hibernate 中的 get 和 load 的区别
我测试了一下hibernate 中 get 和 load 的区别,有的地方不太明白。 设 cat 表中没有 ID为1111的数据. session.get(cat.class, "1111"); //得到null对象 session.load(cat.class,"1111"); //得到的不是空对象,如果你一处理,就包错 get 和 load 在处理上有什么不同,缓存管理上有什么不同.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
catblue
2004-12-27
打赏
举报
回复
同意
kaymo
2004-12-23
打赏
举报
回复
没考虑这个问题
一般就拿着load上
赫赫
gz
jspxnet
2004-12-23
打赏
举报
回复
一般都用 load() ,load 比 get 好在那,就是使用的时候,才查询???
programeyonger
2004-12-23
打赏
举报
回复
好象一般都用的是load()啊!
云物数智
2004-12-23
打赏
举报
回复
两者各有利弊,根据需要取舍吧。
get是直接查询数据库,如果查不到就返回null,并不存在如楼上说的隐患吧?
Load会首先从内存中装载,如果以前没有装载或查询出来,才开始查询数据库,某些情况下效率会高一点。但如果类是通过代理映射的,load()方法会返回一个对象,这是一个未初始化的代理,并且直到你调用该对象的某方法时才会去访问数据库,如果数据库中并不存在这条数据,而你去使用它的方法必然会抛出异常,所以你得在使用到这个对象的各处捕获异常,使用起来相对麻烦。但这是使用了代理的情况,如果没有使用代理,只是简单的load,那查不到数据就会抛出异常了。
bluemeteor
2004-12-23
打赏
举报
回复
btw:我这的2.1.7...不知道在3里面load和get在CACHE方面是否存在不同
bluemeteor
2004-12-23
打赏
举报
回复
load()方法是假定你所读取的对象是肯定存在的...而get则是尝试访问..如果没有则返回null.而load就会抛出Exception cant load ...
个人认为这两个方法唯一的区别就是为了实现不同的业务需要...从src上看性能是一样的
老土豆T
2004-12-23
打赏
举报
回复
将起来很麻烦,但实际上load()好..
load是必须要把对象找到,,如果找不到就会报错.
但get不一样,get找不就就算了..我是去get嘛,,所以它找不到返回为null 不会报错.(但隐患很大.)
执行效率上是一样的...所以一般都用load() 也是有道理的
noscar
2004-12-22
打赏
举报
回复
get(),好象是数据库里不一定有的。而load()一定是数据库里有的....
jspxnet
2004-12-22
打赏
举报
回复
我用的是 hibernate3 beta1
hibernate
的get和
load
区别
1、延迟加载:
load
是true而get是false,意思就是
load
采用的是延迟加载的方式 而get不是,也就是说get()采用立即加载方式,而
load
()采用延迟加载;,
hibernate
思想是 既然这个方法支持延迟加载 他就认为这个对象一定在数据库存在 2、
load
方法的加载过程: 例如:Student stu = sessio
Hibernate
中
get和
load
的
区别
Hibernate
中
get和
load
主要是用来从数据库
中
获取对象, 其过程都很简单;主要有3步 1取得Session会话对象 2开启事务 3执行方法 4提交事务
load
() 1取得Session会话对象 Session session=
Hibernate
Util.getCurrentSession(); 2开启事务 session.beginTranscation(); 3取出User类
中
值为1...
hibernate
中
的get与
load
的
区别
Hibernate
get和
load
区别
get和
load
方式是根据id取得一个记录 下边详细说一下get和
load
的不同,因为有些时候为了对比也会把find加进来。1.从返回结果上对比:
load
方式检索不到的话会抛出org.
hibernate
.ObjectNotFoundException异常 get方法检索不到的话会返回null2.从检索执行机制上对比: get方法和find方法都是直接从
Hibernate
中
load
和get的
区别
Hibernate
中
Session.
load
/get方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象。其
区别
在于: 1.get()方法直接返回实体类,
load
()方法可以返回实体的代理类实例。 2.
hibernate
load
是采用延迟机制(当lazy属性为true时) 而get不采用延迟机制(get语句马上读库) 3.找不到符合条件的数据
Hibernate
load
和get的
区别
get和
load
方式是根据id取得一个记录 1. 从返回结果上对比:
load
方式检索不到的话会抛出org.
hibernate
.ObjectNotFoundException异常 get方法检索不到的话会返回null 2. 从检索执行机制上对比: get方法和find方法直接从数据库
中
检索
load
方法 如果映射文件上类级别的lazy属性为false:就跟Hibern
Java EE
67,535
社区成员
225,852
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章