发现hibernate中关于load和get方法的一个小问题,和大家一起讨论 本帖最后由 mybeta 于 2012-05-29 09:56:29 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 get 会查DB,所以有SQL。load不会查DB,只是在缓存中查找。所以没SQL。 1.get()采用立即加载方式,而load()采用延迟加载; get()方法执行的时候,会立即向数据库发出查询语句, 而load()方法返回的是一个代理(此代理中只有一个id属性),只有等真正使用该对象属性的时候,才会发出sql语句 2.如果数据库中没有对应的记录,get()方法返回的是null.而load()方法出现异常ObjectNotFoundException 楼上正解load()方法可以充分利用二级缓存和内部缓存的现有数据,而get()方法只在内部缓存中进行查找,如没有发现对应数据将跳过二级缓存,直接调用SQL完成查找 哎,我以为get和load有什么稀奇的呢,还是这样的话题, 关于spring + struts2 + ibatis 整合jbpm 的问题 struts2 配置文件问题 hibernate 乐观锁没反应 jsp连接sql的动态连接池问题 MySQL中文乱码问题!! 装完Oracle9i以后Tomcat起不来了,把Oracle服务停止以后就可以了 commonds-fileupload 使用时出错 Jboss的网站怎么上不去了呢?????????????? 这个servlet问题很郁闷,各位发表下高见。 求大神们帮帮忙啊,hibernate查询表中的总条数,但是报错 日志日期格式化 build.xml文件BUILD FAILED
get()方法执行的时候,会立即向数据库发出查询语句,
而load()方法返回的是一个代理(此代理中只有一个id属性),只有等真正使用该对象属性的时候,才会发出sql语句
2.如果数据库中没有对应的记录,get()方法返回的是null.而load()方法出现异常ObjectNotFoundException
load()方法可以充分利用二级缓存和内部缓存的现有数据,而get()方法只在内部缓存中进行查找,如没有发现对应数据将跳过二级缓存,直接调用SQL完成查找