在 myBatis 中对 resulttype 使用自定义类型处理程序
Use custom typehandler on resulttype in myBatis
在我们的项目中,我们使用 mybatis 并在字符串上有一个自定义类型处理程序,默认情况下会从结果中删除 html 和其他内容。我们可以通过在结果映射中设置不同的类型处理程序来覆盖它。
但是我现在有一种情况,在 select 中使用动态查询,所以像这样
<select id="executeQuery" resultType="String">
${sql}
</select>
现在我不希望结果的 html 被剥离,所以我想使用自定义类型处理程序。通常我会在结果映射中这样做,但问题是我不知道将在查询中使用的列的名称。这个问题有没有解决方案,我可以在这个结果上使用另一个类型处理程序?
其他人运行陷入这个问题。最后我使用了以下解决方法:
SELECT (${sql}) AS value
不过,这对可以在 sql 语句中使用哪种查询有一些限制。例如,在 ms sql 中,不能使用 order by 没有 top、offset 或 for xml 的查询。
在我们的项目中,我们使用 mybatis 并在字符串上有一个自定义类型处理程序,默认情况下会从结果中删除 html 和其他内容。我们可以通过在结果映射中设置不同的类型处理程序来覆盖它。
但是我现在有一种情况,在 select 中使用动态查询,所以像这样
<select id="executeQuery" resultType="String">
${sql}
</select>
现在我不希望结果的 html 被剥离,所以我想使用自定义类型处理程序。通常我会在结果映射中这样做,但问题是我不知道将在查询中使用的列的名称。这个问题有没有解决方案,我可以在这个结果上使用另一个类型处理程序?
其他人运行陷入这个问题。最后我使用了以下解决方法:
SELECT (${sql}) AS value
不过,这对可以在 sql 语句中使用哪种查询有一些限制。例如,在 ms sql 中,不能使用 order by 没有 top、offset 或 for xml 的查询。