2012-04-18 70 views
-2

請幫忙。這是MySQL的語法到HQL轉換是否正確?這是MySQL到HQL的轉換是否正確?

的MySQL:

SELECT item.* FROM item, itemGroup 
WHERE item.groupId = itemGroup.groupId 
AND itemGroup.display = 1 
ORDER BY itemGroup.displayOrder ASC 

HQL:

FROM item AS I, itemGroup AS IG 
WHERE I.groupId = IG.groupId 
AND IG.display = 1 
ORDER BY IG.displayOrder ASC 

謝謝。

+1

運行它並看看。 Hibernate可以說它比社區更快,更好 – zerkms 2012-04-18 22:50:04

回答

1

也許它是不正確的(除非你使用 - 反對任何約定 - 小寫的類名)。

在HQL中,您不使用數據庫中的表名或列名。而是使用映射類的名稱和getters/setters或成員變量。

此外,您最好只選擇一個類,並且加入的類Hibernate將自動加入。它可能是這樣的:

FROM Item AS i 
    WHERE i.itemGroup.display = 1 
    ORDER BY i.itemGroup.displayOrder ASC 

您必須在映射文件中指定item和itemGroup之間的連接。 或者,您可以使用HQL語句中的'內部連接'子句。

+0

謝謝。你給了我非常有價值的建議 - 我的查詢現在正在工作。 – Dmytro 2012-04-19 11:19:24