次のクラスがあります(わかりやすくするために簡略化しています):
Class Top {
InternationalStringType name;
}
Class InternationalStringType {
List<LocalizedStringType> localizedString;
}
Class LocalizedStringType {
String value;
}
次の EJBQL クエリは、サブオブジェクトが設定された Top のすべてのインスタンスを正常に取得します。
SELECT DISTINCT Object(t) FROM Top t LEFT OUTER JOIN t.name nm LEFT OUTER JOIN nm.localizedString nm_ls
結果が Top.name.localizedString.value でソートされるように上記のクエリを変更したいと思います
これを行う正しい構文は何ですか? 次のクエリを試しましたが、「エラー: SELECT DISTINCT の場合、ORDER BY 式を選択リストに含める必要があります」というメッセージが表示されます。
SELECT DISTINCT Object(t) FROM Top t LEFT OUTER JOIN t.name nm LEFT OUTER JOIN nm.localizedString nm_ls ORDER BY nm_ls.value ASC
ORDER BY 句の選択リストに何を入れるかは私にはわかりません。
以下は、コンマの後に何を入れても、Object(t) の後の「、」にエラーを与えます。
SELECT DISTINCT Object(t), Object(nm_ls) FROM Top t LEFT OUTER JOIN t.name nm LEFT OUTER JOIN nm.localizedString nm_ls ORDER BY nm_ls.value ASC
関連する場合、私の JPA 実装は hibernate 3.6.4.Final です。あなたの助けのためのTIA。