我有這樣的問題:休眠 - 加入三次同桌
兩個表:
tbl_suppliers
id* (int),
name (string),
activity1 (int),
activity2 (int),
activity3 (int)
tbl_activity
id* (int),
description (string)
有一種「一個一對多」兩和表之間的關係: tbl_activity
(one) - >tbl_suppliers
(many);這意味着每個供應商都可以爲每項活動或甚至沒有活動填寫所有三個ID(無ID)。
我需要顯示的tbl_suppliers
的列name
,activity1
,activity2
,activity3
記錄。
在SQL它的確定與此查詢:
SELECT s.id, s.name, a1.description activitystring1,
a2.description activitystring2, a3.description activitystring3
FROM tbl_suppliers s
LEFT JOIN tbl_activity a1 ON (s.activity1=a1.id)
LEFT JOIN tbl_activity a2 ON (s.activity2=a2.id)
LEFT JOIN tbl_activity a3 ON (s.activity3=a3.id)
我不能做同樣的事情在HQL。我應該映射三次「一對多」的活動領域嗎?
您必須在tbl_suppliers中擁有tbl_activity_id。對? – RAS
@RAS,他確實擁有它,但連接列的名稱是activity1,activity2和activity3。 –