MyBatis未在映射文件中加载Oracle SYSDATE

时间:2012-12-22 20:40:23

标签: java oracle spring mybatis

我的一个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字段吗?

2 个答案:

答案 0 :(得分:1)

问题是你的XML中没有未转义的符号。

答案 1 :(得分:0)

您必须更改单词&#34;&lt;&#34;到&#34;&gt;&#34;。 并且您可以将句子TRUNC(EXPIREDTADSTP) < SYSDATE更改为SYSDATE>TRUNC(EXPIREDTADSTP)。 也许,出现错误信息是因为您没有完成括号。

相关问题