请帮忙。这种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
谢谢。
答案 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'子句。