<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Jason ---分享,共同進(jìn)步

    激情成就夢(mèng)想,努力創(chuàng)造未來
    隨筆 - 53, 文章 - 1, 評(píng)論 - 45, 引用 - 0
    數(shù)據(jù)加載中……

    hibernate 一對(duì)多集合 set查詢問題

    今天解決了一個(gè)問題(如題),這個(gè)問題一致沒有解決,以前的項(xiàng)目中也遇到過但是都沒有花時(shí)間去研究,這回徹底的整理了一下。問題如:一個(gè)老師類(Teacher)和一個(gè)學(xué)生類(User),一個(gè)老師有多個(gè)學(xué)生,當(dāng)然這個(gè)例子不夠好,不管怎樣就是這個(gè)意思,老是對(duì)應(yīng)多個(gè)學(xué)生,oneto many

     

            <set name="users" inverse="true" order-by="column" ><!-- sort="natural"   -->
                <key>
                    <column name="teacher_id" length="36">
                        <comment>老師表主鍵</comment>
                    </column>
                </key>
                <one-to-many class="User" />
            </set>

     

    以前遇到這個(gè)問題,都是通過lazy=false來實(shí)現(xiàn),雖然能實(shí)現(xiàn)效果但是效率上會(huì)有問題也會(huì)產(chǎn)生N+1的查詢問題。

    我一致比較喜歡使用 hibernate的 left join fetch 方式來抓取結(jié)構(gòu),但是我現(xiàn)在是要在查詢老師的列表中顯示他所有的學(xué)生,如果用 select teacher from Teacher teacher left join fetch teacher.users這樣的方式來得到學(xué)生集合,這樣老師的數(shù)據(jù)集合會(huì)有重復(fù)數(shù)據(jù),不知我這樣說是否理解,如果遇到我這樣的問題應(yīng)該比較了解了,使用了很多方法也沒有通過,當(dāng)然實(shí)現(xiàn)這個(gè)效果可以有別的方式(虛列方式,或這采用 native sql ),我現(xiàn)在就是針對(duì)這種抓取的方式(暫時(shí)還是沒有找到方案,如果知道的可以告訴我),我現(xiàn)在采用的方式還是上面的抓取方式,出現(xiàn)的重復(fù)數(shù)據(jù),我把結(jié)果集拿出來之后,把重復(fù)的數(shù)據(jù)過濾掉,這樣暫時(shí)能解決問題。然后是后面的出去的users 排序的問題,默認(rèn)我們使用的set set大家都知道是沒有順序的,我們一種方式是 order-by="column" 上面的,采用這種方式來實(shí)現(xiàn)排序,另一種方式是采用 sort="natural" 方式來實(shí)現(xiàn),但是如果要用sort方式就需要實(shí)現(xiàn)compareble 接口 實(shí)現(xiàn) compareTo 方法 來自定義比較的規(guī)則,第二種方式我試驗(yàn)一下有點(diǎn)問題,他們的原理都是通過這兩個(gè)規(guī)則 指定set最后的實(shí)現(xiàn)類 。

    posted on 2011-08-19 17:21 agun 閱讀(2019) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: A国产一区二区免费入口| 精品亚洲AV无码一区二区三区| 亚洲AV成人一区二区三区观看| 69天堂人成无码麻豆免费视频| 亚洲综合成人网在线观看| 中国黄色免费网站| 亚洲色婷婷综合久久| 国产免费伦精品一区二区三区| 国产乱辈通伦影片在线播放亚洲| 美女露隐私全部免费直播| 日韩免费观看视频| 男女猛烈xx00免费视频试看| 亚洲不卡无码av中文字幕| 人成免费在线视频| 国产AV无码专区亚洲AVJULIA| 你懂的免费在线观看| 亚洲成色在线综合网站| 99精品国产成人a∨免费看| 亚洲国产精品成人精品软件 | 亚洲乱亚洲乱妇24p| 在线免费观看中文字幕| 边摸边吃奶边做爽免费视频99| 亚洲精品动漫人成3d在线| 国产真人无码作爱视频免费| 99久久亚洲精品无码毛片| 午夜成年女人毛片免费观看| 精品亚洲成a人在线观看| 亚洲色偷偷综合亚洲AVYP| 亚洲视频免费播放| 亚洲第一街区偷拍街拍| 亚洲色偷偷狠狠综合网| 久久国产乱子免费精品| 久久综合久久综合亚洲| 亚洲精品国产自在久久 | 一本久久a久久精品亚洲| 最近中文字幕高清免费中文字幕mv | 亚洲黄色高清视频| 国产成人精品免费视频大全五级| 一级做a毛片免费视频| 亚洲欧洲日韩综合| 亚洲av成人一区二区三区在线观看 |