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

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

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

    java學習

    java學習

     

    jpa 多對多查詢hql語句

    任務和聯系人是多對多關系,現在由聯系人id查詢出所有相關的任務
    "SELECT t from Task t join t.contacters c where c.id = ?1"

    比如:

    一個老師教許多學生,一個學生被許多老師教,一個學生有好多書,同一種書被許多同學擁有.
    要查詢教擁有書"a"的學生的老師!

    Hql語句:

    SELECT t FROM Teacher t join t.students s join s.books b where b.name = 'a' 

    解釋:t.students s中s并不是集合的意思,而是t的students對象的表別名,join t.students s這個hql,hibernate會翻譯成兩個表的內連接關系

    錯誤寫法:

    SELECT t FROM teacher t where t.students.books.name = 'a' 

    其實道理是很顯然的,t.students是一個Set,那么這個Set怎么可能有books這樣的屬性呢?同理books.name也不對,所以 使用表間連接并給出別名t.students s,此時的對象s才有books屬性,所以可以寫s.books b,最后使用b.name限制查詢b.name = 'a'. 

    另外一種寫法:

    SELECT t FROM Teacher t,Student s,Book b where s.id in elements(t.students) and b.id in elements(s.books)
    這種方法沒有出錯!不過這種方式要用子查詢!

    posted on 2013-07-10 13:37 楊軍威 閱讀(1181) 評論(0)  編輯  收藏


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


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 黄色毛片免费网站| 亚洲精品无码aⅴ中文字幕蜜桃| 污网站免费在线观看| 日韩免费视频播播| 久久精品国产亚洲AV| 国产成人免费A在线视频| 色偷偷亚洲第一综合网| 免费亚洲视频在线观看| 老妇激情毛片免费| 亚洲情综合五月天| 午夜影院免费观看| 亚洲中文无码av永久| 免费无码不卡视频在线观看| 理论亚洲区美一区二区三区 | 97视频免费观看2区| 久久久久亚洲AV成人片| 国产精品久久久久免费a∨| 久久综合久久综合亚洲| 免费不卡中文字幕在线| 国产性生大片免费观看性| 图图资源网亚洲综合网站| 成人免费午夜无码视频| jzzijzzij在线观看亚洲熟妇| 亚洲人成影院在线观看| 久久美女网站免费| 亚洲va久久久久| 亚洲国产婷婷综合在线精品 | 成年黄网站色大免费全看| 亚洲乱码日产精品一二三| 亚洲美女高清一区二区三区| a毛片免费观看完整| 亚洲资源最新版在线观看| 无码不卡亚洲成?人片| 特级无码毛片免费视频尤物| 在线综合亚洲欧洲综合网站| 久久国产成人亚洲精品影院| 国产精品色拉拉免费看| 一本到卡二卡三卡免费高| 亚洲免费在线视频观看| 亚洲国产精品尤物yw在线 | 日韩亚洲人成在线综合|