我的一个XML中有以下非常基本的映射:
<select id="getUserAuthorities" parameterType="string" resultMap="resultGetUserAuthorities">
SELECT AUTHORITY FROM BASIC_AUTHORITIES
WHERE UPPER(USERNAME) = UPPER(#{username})
AND (EXPIREDTADSTP IS NULL OR TRUNC(EXPIREDTADSTP) < SYSDATE)
</select>
使用上面的映射,我的应用程序服务器在创建映射器期间在容器启动(Spring)上失败,并出现以下错误:
调用init方法失败;嵌套异常是java.lang.IllegalArgumentException:org.apache.ibatis.builder.BuilderException:创建文档实例时出错。原因:org.xml.sax.SAXParseException:元素的内容必须由格式良好的字符数据或标记组成。
似乎在sysdate上失败了,好像我删除了
OR TRUNC(EXPIREDTADSTP)&lt; SYSDATE
然后就可以了。
MyBatis不支持Oracle SYSDATE字段吗?
答案 0 :(得分:1)
问题是你的XML中没有未转义的符号。
答案 1 :(得分:0)
您必须更改单词&#34;&lt;&#34;到&#34;&gt;&#34;。
并且您可以将句子TRUNC(EXPIREDTADSTP) < SYSDATE
更改为SYSDATE>TRUNC(EXPIREDTADSTP)
。
也许,出现错误信息是因为您没有完成括号。