Экранирование фигурных скобок из значения 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
  1. Как мне правильно экранировать все потенциально проблемные символы?
  2. куда девать логику? В маппере / дао / сервисе..?

Так что, например, '}' будет экранированным (и, если текст уже содержался, экранированным '}', оставить его таким образом).

в проекте используются:

  • Java 8
  • весна
  • База данных Oracle
  • MyBatis

0 ответов

Другие вопросы по тегам