-2

助けてください。この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

ありがとうございました。

4

1 に答える 1

1

おそらくそれは正しくありません (ただし、クラス名に小文字を使用する場合を除きます)。

HQL では、データベースのテーブル名や列名は使用しません。代わりに、マップされたクラスの名前とゲッター/セッターまたはメンバー変数を使用します。

また、クラスを 1 つだけ選択すると、結合されたクラス Hibernate が自動的に結合されます。次のようになります。

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

マッピング ファイルで指定する必要がある item と itemGroup の間の結合。別の方法として、HQL ステートメントで 'inner join' 句を使用できます。

于 2012-04-19T06:43:41.593 に答える