2011-06-27 53 views
0

如何將此僞查詢轉換爲hibernate標準查詢?如何將sql轉換爲hibernate標準查詢

考慮的itemid = 123,項目表中有一個外鍵引用類別表(catgeoryId),我想類別coresp返回到該項目id爲123 ...

從項目作爲項目選擇cats.category 內部加入類別爲貓 其中item.id = itemID

回答

0

爲什麼你想要做一個標準?鑑於你知道該ID,你可以加載你的物品,並檢查它的類別字段。

Hibernate的目標是使OOP程序員的數據庫編程更簡單,而不是更復雜。

+0

好一點。我需要類別對象而不是項目,因爲我需要提取它的一些屬性。編寫一個返回類別對象而不是項目對象的查詢不是更好嗎?而不需要檢查類別時,我實際上不需要實際的項目? –

+0

我不擔心讓Hibernate產生1 + 1選擇的情況。在維護代碼的清晰度和避免1 + n選擇之間,你會在你的應用程序中做很多事情。 – Olaf

+0

這一切都取決於基本實體的複雜程度。如果所有用戶需求都是類別,沒有理由獲取基本實體。採取Hibernate的方法只會讓你真正需要的東西從長遠來看通常是最安全的。這就是說,我同意標準不是解決這個特定問題的最佳方法。 –

0

標準並不是這種特殊需求的最佳匹配。根據我的經驗,當您構建動態查詢時,標準是最有用的。

如果我正確理解您的域名,這是相當簡單的HQL表示:

select item.category from Item item where item.id = :itemId