这个MySQL到HQL转换是否正确?

时间:2012-04-18 22:09:48

标签: mysql hibernate 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 个答案:

答案 0 :(得分:1)

可能它不正确(除非你使用 - 反对任何约定 - 类名的小写)。

在HQL中,您不使用数据库中的表名或列名。而是使用映射类的名称和getters / setter或成员变量。

另外,您最好只选择一个类,并且连接类Hibernate将自动加入。可能是这样的:

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

您必须在映射文件中指定item和itemGroup之间的连接。 或者,您可以在HQL语句中使用'inner join'子句。