Mybatisでwhere句のchar型列のtrimを行いたい

前提

SpringMVCでMybatisを使用して開発を行っています。
DBはOracle

実現したいこと

Mybatisで下記SQLを定義しましたが、正しい検索結果が返却されません。

Repository.xml
<select id="selecttable01" resultType="common.table01Info" parameterType="common.table01InfoKey">
select id,name,value from table01 where id =#{strID};
</select>

【table01テーブルの定義】
"id" CHAR(2),
"name" CHAR(10),
"value" CHAR(10)

table01のid列の値が"1"で、パラメータのstrIDの値が"1"で上記SQLを実行すると、検索に該当しませんが
where句にtrimを追加する(where RTRIM(id) =#{strID})と、検索に該当します。

SQLを変更せずに、上記のように、条件句の列をtrimすることはできないでしょうか?

エラーメッセージ

該当のソースコード

ソースコード

試したこと

TypeHandlerを作成し、setNonNULLParameter()をオーバーライドして、parameterをtrimするようにしましたが、
上記#{strID}の値がtrimされる結果となり、テーブルのid列の値をtrimすることができませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント