6.4 hql
的多表查詢
物件之間總是有各種各樣的關係,關聯關係是類之間最常見的關係。多
表查詢是
hql中的強大功能之一,包括內連線、左連線和右連線等。多
表查詢的設定及執行都比較麻煩,在執行本節中的示例時,務必保證每
一步都沒有錯誤。
6.4.1
表之間的關聯關係
在資料庫
joblog
中用到了
個表:student
(學生表)、
course
(課程表)和
sc(選課表)。這些表的詳細資訊見
6.1.1
節「示例中用到的默
認資料庫表和資料」。在現實模型中,乙個學生可以選擇多門課程,一
個課程可以被多個學生選擇,
student
和course
是多對多的關聯關係。
為了便於演示
hql的多表查詢,
本節中假設
student
和course
之間是單
向關聯關係。
在多對多的關聯關係中,一般來說有個中間表,這個表描述了多對多關
系,這就是選課表
scsc
每一行資料代表乙個學生的選課和成績。
各個表的主鍵、外來鍵設定如下。
student
表的主鍵是
id欄位。
course
表的主鍵是
id欄位。
sc表的主鍵是
id欄位。
sc表中的
sno欄位是
student表id
欄位的外來鍵。
sc表中的
cno欄位是
course表id
欄位的外來鍵。
圖6-8
是個表之間關係的直觀表示。
HQL中的一對多查詢
情況 kam中有乙個department,department有多個iata 如果要按照kam的name或者department的name來查,則很簡單 from kam as kam where kam.name and kam.department.name 但是如果是按照iata的名字呢?fr...
HQL中的一對多查詢
問題 kam中有乙個department,department有多個iata 如果要按照kam的name或者department的name來查,則很簡單 from kam as kam where kam.name and kam.department.name 但是如果是按照iata的名字呢?fr...
如何判斷乙個list是否為空
if null list list.size 0 list是乙個集合,也就是乙個容器。null list判斷是否有這個容器,而list.size 0判斷這個容器有沒有東西,兩者是不一樣的意思 而list.size 0與list.isempty 沒有區別 容器相當於水杯,如果水杯都沒有,水是絕對不會有...