hql left join on應用問題

2021-04-30 02:45:04 字數 1304 閱讀 1664

網摘一:

sql: select c.* from card c left

join score s on s.card_id = c.id and s.invalid_date >=curdate() where s.id is null

在hibernate中要使用left

join必須宣告關聯對映,這裡的關聯是one-to-many, 在card裡面建乙個set scores,然後配置好

= curdate()">

唯一特殊的就在於這個where,hql裡面不能寫on ,所以得on裡面的條件都寫在where裡面,where裡面是寫的是欄位名和針對不同資料庫的sql,將導致不同資料庫之間的移植增加一些工作量。

hql如下:select c from card c left

join c.scores s  where s.id is null

問題是:在set中配置的key不是另外表的關鍵字,條件也不需要用到key,又該如何用呢?目前出現的就是這個問題,哎,找不到解決辦法,問題先記錄下來吧。有時間再看看

網摘之二:

有2個table:parent、children。  

parent結構:id(int),   name(string)。主鍵id。  

children結構:parentid(int),   type(int),   name(string)。主鍵parentid,   type。  

children.parentid和parent.id連線

sql可寫為select   *   from   parent   left   outer   join   children   on   parent.id=children.parentid   and   children.type=?或select   *   from   parent   left   outer   join   (select   *   from   children   where   type=?)   on   parent.id=children.parentid

....  

session.enablefilter("typefilter").setparameter("type","******xx");  

list   list=session.createquery("select   p   from   parent   p   left   join   p.children   c").list();

問題是我的db訪問層用的是 ******hibernatetemplate,這裡的filter就知道如何用了

對hql不是很熟,乙個問題的記錄而已。

網路應用 web應用

world wide web tim berners lee 網頁 網頁互相鏈結 網頁 web page 包含多個物件 objects 物件的定址 addressing url uniform resoure locator 統一資源定位器 rfc1738 scheme host port path...

應用 原生應用和混合應用的區別

最近原生應用 web應用 混合應用的名字讓我們聽得比較熟悉了,現在我們就通過評析各種應用的優缺點來更進一步看看這三者的區別。一.原生應用 你使用過微軟powerpoint 或者 word吧?這些可直接在你電腦上執行或者在智慧型手機上執行,簡單來說,原生應用是特別為某種作業系統開發的,比如ios an...

Flyme應用中心應用認領

使用jarsigner 他推薦的命令如下 jarsigner verbose keystore c downloads sign verification mykeystore signedjar meizuemptyapk release signed apk meizuemptyapk rele...