posts - 0,  comments - 3,  trackbacks - 0

今天程序中涉及到这个问题,我查了下。有些人说的很笼统理解不了,下面是一个朋友的解释,我copy如下,并说出自己的理解:

1.如果没有符合条件的纪录,get返回一个null,load会抛出一个ObjectNotFountdException

2.load返回实体的代理类实例(先查看缓存和二级缓存是不是别人用过,如果别人用过了就会留下句柄,那么它就返回这个句柄,如果没有的话就抛出一个null了。),get方法永远直接返回实体类(先找一把,毕竟hibernate是持久化对像的。如果没有的话它就通过ID去数据库中检索并构造一个对象并返回,如果库中查不到的话就抛出异常:ObjectNotFountdException并告诉你   No row with the given identifier exists: load的类)

3.load方法充分利用内部缓存和二级缓存,get方法只使用内部缓存,没有就直接查询!!!

所以,如果要利用二级缓存的时候,要用load读取数据。

----------------------只要能很好的处理他们返回的异常信息就大胆的用load吧。毕竟hibernate就是持久化对象的,它存了那么多咱们为啥不用呢?呵呵。

posted on 2009-10-27 10:34 赵永亮 阅读(155) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 

<2025年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

留言簿

文章档案

搜索

  •  

最新评论