Mapper XMLについて読んだ後、いくつかの一般的な変換をパラメーターに適用するにはどうすればよいのか疑問に思わずにはいられません。例えば...
<select id="selectPerson" parameterType="String" resultType="hashmap">
<!-- #{name} should always be upper case and have a trailing % -->
SELECT * FROM PERSON WHERE FIRST_NAME like #{name}
</select>
これとこれを読んだ後、私はいくつかの観察を行うことができます。
upper
orconcat
または'||'
orなどの SQL 関数を使用'+'
して変換を行うと、DB2 のパフォーマンスが低下します。- 私はいつでもマッパーをラップしたり、サービスレイヤーで詳細を公開したりできますが、それは面倒です
私が欲しいのは、次のようなことができるようになることです...
<select id="selectPerson" parameterType="String" resultType="hashmap">
<!-- #{name} should always be upper case and have a trailing % -->
SELECT * FROM PERSON WHERE FIRST_NAME like #{name.upperCase() + '%'}
</select>
このようなことは可能ですか、それとも 2 番目に良い解決策は何ですか?
更新: MyBatis は式の評価に OGNL を使用しているようです。たとえば、if
and${}
式は OGNL を使用しますが、#{}
それをだます方法がない限り、そうではないように見えます。