3
我試圖找出如何渴望負載客戶在以下HQL查詢:我可以使用HQL加載屬性嗎?
select order.Customer
from Order as order
where order.Id in
(
select itemId
from BadItem as badItem
where (badItemType = :itemType) and (badItem.Date >= :yesterday)
)
有訂單和客戶之間平時多到一的關係。
我想如果可能的話做,這是在查詢,而不是映射, - 如在「連接抓取......」
也許查詢將被重構的加入和我有一個心理障礙。
任何想法?
感謝您的幫助。我首先嚐試了「替代」查詢,但得到了「查詢指定的連接提取,但獲取的關聯的所有者未出現在選擇列表中」錯誤。有任何想法嗎?一旦我可以計算出如何映射BadItem和Order(BadItems表中的鍵實際上是三列 - 不是我的設計),我會嘗試給你第一個建議。 – dommer 2010-09-10 12:45:21
嗯,聽起來像是因爲如果你選擇了顧客,他們已經被填充了。所以這基本上意味着你的問題是沒有意義的;如果直接選擇客戶,客戶不能被延遲加載(hibernate不支持屬性級的延遲加載),因此已經加載。這可能嗎? – 2010-09-10 12:55:29
有人會這樣想,但我原來的查詢拋出了Customer._orders的LazyInitializationException(_orders是Order屬性的後臺字段)。 – dommer 2010-09-10 13:08:26