Экранирование фигурных скобок из значения MyBatis - Oracle
Это проблемная часть моего картографа MyBatis:
<foreach item="item" index="index" collection="xy"
open="(" separator="or" close=")">
contains(t.mycol, '{' || #{item} || '}') > 0
</foreach>
Если, например, #{item} содержит '}', я получаю:
Error code: DRG-50900
Description: text query parser error on line string, column string
Cause: bad query
- Как мне правильно экранировать все потенциально проблемные символы?
- куда девать логику? В маппере / дао / сервисе..?
Так что, например, '}' будет экранированным (и, если текст уже содержался, экранированным '}', оставить его таким образом).
в проекте используются:
- Java 8
- весна
- База данных Oracle
- MyBatis