【问题标题】:MyBatis not loading with Oracle SYSDATE in mapping fileMyBatis 未在映射文件中加载 Oracle SYSDATE
【发布时间】:2015-08-11 14:45:31
【问题描述】:

我的一个 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)

然后它就可以正常工作了。

MyBatis 不支持 Oracle SYSDATE 字段吗?

【问题讨论】:

    标签: java oracle spring mybatis


    【解决方案1】:

    问题是您的 XML 中有一个未转义的小于号。

    【讨论】:

    • 谢谢,完全错过了。
    【解决方案2】:

    您必须将单词“”。 您可以将句子TRUNC(EXPIREDTADSTP) &lt; SYSDATE 更改为SYSDATE&gt;TRUNC(EXPIREDTADSTP)。 可能是因为你没有完成括号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-25
      • 2016-02-03
      • 2016-01-30
      • 2016-02-07
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      相关资源
      最近更新 更多