✏️
MyBatis 「要素のコンテンツは、整形式の文字データまたはマークアップで構成されている必要があります」の解決方法
エラー内容
Cause: org.xml.sax.SAXParseException; lineNumber: XX; columnNumber: XX; 要素のコンテンツは、整形式の文字データまたはマークアップで構成されている必要があります。
解決方法
不等号を使っている箇所を<![CDATA[ ... ]]>
で囲む
注意点
scriptで囲ってない時には<![CDATA[ ... ]]>
は不要。使ってしまうと逆にエラーになるので注意。
サンプルソース
Kotlinでのサンプル。
@Mapper
interface userMapper{
@Select(
"""<script>
SELECT
name
FROM
user
WHERE
id IN
<foreach item="id" collection="ids" open="(" separator="," close=")" >
#{id}
</foreach>
AND delete_flg <![CDATA[ <> ]]> '0'
</script>"""
)
fun findUsersByIds(ids: Long): List<User>
}
Discussion