0

我的一个 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 上失败了,好像我删除了

或 TRUNC(EXPIREDTADSTP) < SYSDATE

然后它工作得很好。

MyBatis 不支持 Oracle SYSDATE 字段吗?

4

2 回答 2

1

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

于 2012-12-23T03:30:40.273 回答
0

您必须将单词“<”更改为“>”。您可以将句子更改TRUNC(EXPIREDTADSTP) < SYSDATESYSDATE>TRUNC(EXPIREDTADSTP). 也许,出现错误消息是因为您没有完成括号。

于 2015-08-11T06:42:18.630 回答