幫我翻譯成正確的NHibernate這個...如何用NHibernate查詢Oracle數據庫?
我有2個表Oracle數據庫:
Employees:
Id (unique id)
FirstName (string)
LastName (string)
Location (string)
Locations:
Name (string)
Address (string)
正如你可以看到員工表中有一個唯一的ID,但位置表沒有無論如何。名稱字段是一個常規字段,不是唯一的。
在Oracle SQL,我可以運行以下查詢:
SELECT *
FROM Employees e
LEFT OUTER JOIN Locations l
ON e.Location = l.Name
WHERE e.Id = 42
其中僱員42的位置,具有在位置表2點的行,所以該查詢返回2行,一個用於發現對於每個位置員工42.
那麼,我想不出如何將其轉換成NHibernate映射+查詢(我使用流利NHibernate)。我傾向於認爲我應該將Employees.Location映射爲Locations.Name的引用,所以當運行我的HQL查詢時,它應該返回2個對象,但NHibernate不會讓我從Reference中檢索列表。所以我嘗試了HasMany,但它也不起作用,因爲NHibernate希望位置中的字段指向員工,這很有意義。
我的HQL查詢看起來是這樣的:
select e
from Employees e
left join e.Locations l
where e.SGId like :sgId
爲什麼我在常規的SQL,而不是在NHibernate的做到這一點?
謝謝。
這不會工作,因爲你缺少.PropertyRef(),事實證明。我用這個新元素添加了一個新的解決方案。謝謝您的幫助。 – md1337
是的,你的權利。 :)更新後,供將來參考。 +1 –