vickzhu

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            151 隨筆 :: 0 文章 :: 34 評論 :: 0 Trackbacks
          1,load()方法從來就是假定數據在數據庫中是存在的,在使用時如果不存在則會拋出ObjectNotFoundException;而get()方法不會假定數據在數據庫中存在,如果不存在則返回null
          2,load()方法返回的是實體類的代理類,因此load()可以使用延遲加載策略來加載對象
                get()方法返回的不一定是實體類,可能是代理類,因為get()方法如果在session緩存(一級緩存)中找到了該id對應的對象,如果剛好該對象前面是被代理過的,如被load方法使用過,或者被其他關聯對象延遲加載過,那么返回的還是原先的代理對象,而不是實體類對象。
          3,load()方法查詢數據時會先從session緩存(一級緩存)中查找,如果沒有找到則會創建代理類,該代理類僅僅初始化了OID屬性,當第一次訪問其他屬性值時,則會依次從二級緩存-->數據庫查找,直到找到數據,最后將所有屬性值賦給代理類。而get()方法則會直接按照一級緩存-->二級緩存-->數據庫的順序查找。

          看到網上的全都是復制的,而且錯誤不少,怎么就沒有人修正一下呢?
          posted on 2009-01-22 10:29 筱 筱 閱讀(487) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 孟津县| 沾化县| 大荔县| 宝鸡市| 廉江市| 社会| 河南省| 镇远县| 平陆县| 济源市| 镇原县| 沙田区| 阿拉善盟| 五家渠市| 阿荣旗| 固阳县| 鸡泽县| 北宁市| 翼城县| 稷山县| 洛南县| 马关县| 西林县| 德惠市| 柳林县| 襄城县| 新巴尔虎右旗| 桦甸市| 十堰市| 周至县| 抚远县| 陕西省| 永修县| 雷波县| 顺平县| 淮安市| 盐源县| 兴业县| 安化县| 南岸区| 澄迈县|