手動で並べるOrderBy

@DBFlute-0.9.4, Java
例えば、会員リストの検索で、
「会員ステータス「退会会員」・「正式会員」・「仮会員」の順」
で並べたい場合、会員ステータスに「表示順(DISPLAY_ORDER)」の
ようなソート用カラムを作って、そのカラムで並べるようにする
のがよくやる手法です。ほとんどの場合これでOKだと思います。

しかし、どうしてもDBにそういったカラムを追加することが
できない事情があったり、一部処理だけそのカラムの値とは
違う順序で並べたいとか特殊な要件があったりした場合のために
以下のように並べる順序を指定できるようにしました。
final MemberCB cb = new MemberCB();
List<String> ls = new ArrayList<String>();
ls.add(CDef.MemberStatus.Withdrawal.code());
ls.add(CDef.MemberStatus.Formalized.code());
ls.add(CDef.MemberStatus.Provisional.code());
cb.query().addOrderBy_MemberStatusCode_Asc().withManualOrder(ls);
select dflocal.MEMBER_NAME as c1, ...
  from MEMBER dflocal  
 order by 
   case
     when dflocal.MEMBER_STATUS_CODE = 'WDL' then 0
     when dflocal.MEMBER_STATUS_CODE = 'FML' then 1
     when dflocal.MEMBER_STATUS_CODE = 'PRV' then 2
     else 3
   end asc
ConditionBeanPlatinumTestの
test_query_addOrderBy_withManualOrder_Tx()
にてExampleがあります。

一つ制限として、UNIONと共演することはできません。