2017-11-07 6 views
-1

私は以下のルールで、エンティティのリストをソートする必要があります。カスタム注文でHQLを並べ替える方法は?

XS、S、M、L、XL、2XL ...

私は並べ替えることができます知っているHQL中では標準順序アルファベット順および数値順。上記の注文は可能ですか?

私の現在のコード:

SELECT S FROM Shirt S ORDER BY S.size; 

感謝。

答えて

1

以下のクエリを試してください:

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); 
1

あなたは右のモデルをあなたのPOJOを持っている場合、これは簡単な操作です。

私はあなたが持っているとします

これらの性質を持つ

クラスShirt

プロパティを持つ

DressSize dressSize

とクラスDressSize

String description 
int orderNum 

だからあなたQUE ryは次のようになります。

SELECT S FROM Shirt S ORDER BY S.dressSize.orderNum 
+0

これはコードではありません。これはString sizeプロパティを持つShirtクラスです。 – VHanded

+0

@VHanded:親愛なる、あなたはDressSizeとしてオブジェクトを使用し、Strnigプロパティは使用しないでください。だからアルファベット順しかありません。 ORDER BYでCASE WHENを使用することはできますが、問題が発生する可能性があります) –

関連する問題