私は以下のルールで、エンティティのリストをソートする必要があります。カスタム注文でHQLを並べ替える方法は?
XS、S、M、L、XL、2XL ...
私は並べ替えることができます知っているHQL中では標準順序アルファベット順および数値順。上記の注文は可能ですか?
私の現在のコード:
SELECT S FROM Shirt S ORDER BY S.size;
感謝。
私は以下のルールで、エンティティのリストをソートする必要があります。カスタム注文でHQLを並べ替える方法は?
XS、S、M、L、XL、2XL ...
私は並べ替えることができます知っているHQL中では標準順序アルファベット順および数値順。上記の注文は可能ですか?
私の現在のコード:
SELECT S FROM Shirt S ORDER BY S.size;
感謝。
以下のクエリを試してください:
SELECT S FROM Shirt S ORDER BY (CASE S.size WHEN 'XS' THEN 1
WHEN 'S' THEN 2
WHEN 'M' THEN 3
WHEN 'L' THEN 4
WHEN 'XL' THEN 5
WHEN '2XL' THEN 6
END);
あなたは右のモデルをあなたのPOJOを持っている場合、これは簡単な操作です。
私はあなたが持っているとします
これらの性質を持つクラスShirt
DressSize dressSize
とクラスDressSize
:
String description
int orderNum
だからあなたQUE ryは次のようになります。
SELECT S FROM Shirt S ORDER BY S.dressSize.orderNum
これはコードではありません。これはString sizeプロパティを持つShirtクラスです。 – VHanded
@VHanded:親愛なる、あなたはDressSizeとしてオブジェクトを使用し、Strnigプロパティは使用しないでください。だからアルファベット順しかありません。 ORDER BYでCASE WHENを使用することはできますが、問題が発生する可能性があります) –