新聞中心
本文向大家介紹Hibernate集合類型,可能好多人還不了解Hibernate集合類型,沒(méi)有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括渭南網(wǎng)站建設(shè)、渭南網(wǎng)站制作、渭南網(wǎng)頁(yè)制作以及渭南網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,渭南網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到渭南省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
延遲加載機(jī)制是為了避免一些無(wú)謂的性能開(kāi)銷而提出來(lái)的,所謂延遲加載就是當(dāng)在真正需要數(shù)據(jù)的時(shí)候,才真正執(zhí)行數(shù)據(jù)加載操作。在Hibernate中提供了對(duì)實(shí)體對(duì)象的延遲加載以及對(duì)集合的延遲加載,另外在Hibernate3中還提供了對(duì)屬性的延遲加載。下面我們就分別介紹這些種類的延遲加載的細(xì)節(jié)。
Hibernate集合類型的延遲加載
在Hibernate的延遲加載機(jī)制中,針對(duì)集合類型的應(yīng)用,意義是最為重大的,因?yàn)檫@有可能使性能得到大幅度的提高,為此Hibernate進(jìn)行了大量的努力,其中包括對(duì)JDK Collection的獨(dú)立實(shí)現(xiàn),我們?cè)谝粚?duì)多關(guān)聯(lián)中,定義的用來(lái)容納關(guān)聯(lián)對(duì)象的Set集合,并不是java.util.Set類型或其子類型,而是net.sf.hibernate.collection.Set類型,通過(guò)使用自定義集合類的實(shí)現(xiàn),Hibernate實(shí)現(xiàn)了集合類型的延遲加載。為了對(duì)Hibernate集合類型使用延遲加載,我們必須如下配置我們的實(shí)體類的關(guān)于關(guān)聯(lián)的部分:
name=”com.neusoft.entity.User” table=”user”> - …
name=”addresses” table=”address” lazy=”true” inverse=”true”> column=”user_id”/> class=”com.neusoft.entity.Arrderss”/>
通過(guò)將
- User user=(User)session.load(User.class,”1”);
- Collection addset=user.getAddresses();
- Iterator it=addset.iterator();
- while(it.hasNext()){
- Address address=(Address)it.next();
- System.out.println(address.getAddress());
- }
當(dāng)程序執(zhí)行到第二行時(shí),這時(shí)并不會(huì)發(fā)起對(duì)關(guān)聯(lián)數(shù)據(jù)的查詢來(lái)加載關(guān)聯(lián)數(shù)據(jù),只有運(yùn)行到第三行時(shí),真正的數(shù)據(jù)讀取操作才會(huì)開(kāi)始,這時(shí)Hibernate會(huì)根據(jù)緩存中符合條件的數(shù)據(jù)索引,來(lái)查找符合條件的實(shí)體對(duì)象。
文章標(biāo)題:Hibernate集合類型的延遲加載特性
本文路徑:http://www.dlmjj.cn/article/cdidddi.html


咨詢
建站咨詢
