这是我的 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
- 如何正确转义所有可能有问题的字符?
- 把逻辑放在哪里?在映射器/dao/service..?
因此,例如 '}' 会被转义(如果文本已经包含转义的 '}' 以保持这种状态)。
项目中使用:
- 爪哇 8
- 春天
- 甲骨文数据库
- MyBatis