美文网首页
mybatis版本bug

mybatis版本bug

作者: 沧海月明猪有泪 | 来源:发表于2017-04-21 15:16 被阅读0次

    现象

    当用一个日期去比较字符串时

    <if test="startTime != null and startTime != '' ">
        create_time &gt;= #{startTime,jdbcType=TIMESTAMP}
    </if>
    

    出现异常

    Caused by: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
        at org.apache.ibatis.ognl.OgnlOps.compareWithConversion(OgnlOps.java:93)
        at org.apache.ibatis.ognl.OgnlOps.isEqual(OgnlOps.java:143)
        at org.apache.ibatis.ognl.OgnlOps.equal(OgnlOps.java:802)
        at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:53)
        at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
        at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
        at org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:61)
        at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
        at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
        at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:494)
        at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:458)
        at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:44)
        at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)
        at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)
        at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)
        at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)
        at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)
        at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:41)
        at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:292)
        at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81)
        at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
        ... 34 common frames omitted
    

    原因

    mybatis-3.3.0以上的版本在时间比较字符串上存在此bug

    相关文章

      网友评论

          本文标题:mybatis版本bug

          本文链接:https://www.haomeiwen.com/subject/zemdzttx.html