public class VariableOrderBySyntaxConvertor extends SqlConvertorSupport
| Constructor and Description |
|---|
VariableOrderBySyntaxConvertor() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
convert(java.lang.String sql,
java.lang.Object obj)
SQL文の可変ORDER BY構文を変換する。
可変ORDER BY構文の仕様は下記のとおり。
|
getBindValuepublic java.lang.String convert(java.lang.String sql,
java.lang.Object obj)
$sort(フィールド名) {(ケース1)(ケース2)・・・(ケースn)}
ケース: ORDER BY句の切り替え候補を表す。
候補を一意に識別するソートIDとORDER BY句に指定する文字列(以降はケース本体と称す)を記述する。
どの候補にも一致しない場合に使用するデフォルトのケースには、ソートIDに"default"を指定する。
フィールド名: 検索条件オブジェクトからソートIDを取得する際に使用するフィールド名を表す。
ケース部分の仕様は下記のとおり。
デフォルトのケースを指定したSQL文の場合
SELECT * FROM USER WHERE USER_ID = :userId
$sort(sortId) {(1 USER_ID ASC) (2 USER_ID DESC) (3 USER_ID, KANJI_NAME ASC) (4 USER_ID, KANJI_NAME DESC) (default USER_ID ASC)}
sortId = 1:
SELECT * FROM USER WHERE USER_ID = :userId ORDER BY USER_ID ASC
sortId = 4:
SELECT * FROM USER WHERE USER_ID = :userId ORDER BY USER_ID, KANJI_NAME DESC
sortId = null:
SELECT * FROM USER WHERE USER_ID = :userId ORDER BY USER_ID ASC
デフォルトのケースを指定しないSQL文の場合
SELECT * FROM USER WHERE USER_ID = :userId
$sort(sortId) {(1 USER_ID ASC) (2 USER_ID DESC) (3 USER_ID, KANJI_NAME ASC) (4 USER_ID, KANJI_NAME DESC)}
sortId = null:
SELECT * FROM USER WHERE USER_ID = :userId
sql - SQL文obj - 検索条件をもつオブジェクト