这种问题在xml处理sql的程序中经常需要我们来进行特殊处理。
其实很简单,我们只需作如下替换即可避免上述的错误:
| < | <= | >= | & | ' | " | |
| < | <= | > | >= | & | ' | " |
例如常见的时间比较:
错误写法
<select id="findByTerminalNumber" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
AS m
WHERE
NOT EXISTS (SELECT 1 FROM <include refid="tableName"></include> WHERE TERMINAL_NUMBER = m.TERMINAL_NUMBER
AND
m.ALARM_TIME < ALARM_TIME
) AND
TERMINAL_NUMBER = #{TERMINAL_NUMBER}
</select>
正确写法
<select id="findByTerminalNumber" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
AS m
WHERE
NOT EXISTS (SELECT 1 FROM <include refid="tableName"></include> WHERE TERMINAL_NUMBER = m.TERMINAL_NUMBER
AND
m.ALARM_TIME < ALARM_TIME
) AND
TERMINAL_NUMBER = #{TERMINAL_NUMBER}
</select>