ibatis一个错误的排查

一段ibatis查询语句如下:

<select id="getDownloadApkURL" parameterClass="domain.BaseQueryDO" resultClass="java.lang.String">
        SELECT
            update_url
        FROM idle_apk_info
        WHERE
            state >= 0
        <isGreaterThan prepend="AND" property="apkId" compareValue="0">
            id = #apkId#
        </isGreaterThan>
        <isNotNull prepend="AND" property="apkVersionName">
            apk_version_name = #apkVersionName#
        </isNotNull>

        <isGreaterThan prepend="AND" property="apkVersionCode" compareProperty="0">
            apk_version_code = #apkVersionCode#
        </isGreaterThan>
    </select>

 

 其中BaseQueryDO的定义如下:

public @Data class BaseQueryDO extends QueryBase{

    private static final int PAGE_SIZE = 5;

    private int state;

    private int id;

    private int apkId;

    private String apkName;

    private String apkVersionName;

    private double apkVersionCode;

    @Override
    protected Integer getDefaultPageSize() {
        return PAGE_SIZE;
    }
}

 

执行期间报错:

Cause: com.ibatis.common.beans.ProbeException: There is no READABLE property named '0' in class 'domain.BaseQueryDO'; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in sqlmap/ApkInfo.xml.
--- The error occurred while preparing the mapped statement for execution.
--- Check the apk_version.getDownloadApkURL.
--- Check the parameter map.

 

使劲看了一下ibatis映射文件都没有发现错误。

没办法单条注释ibatis映射语句,发现打开

<isGreaterThan prepend="AND" property="apkVersionCode" compareProperty="0">
            apk_version_code = #apkVersionCode#
</isGreaterThan>

 就会报错。

 

估计是isGreaterThan这个函数对double型不起作用,但是在网上找了一番,没找到相关资料。

不得已,将

private double apkVersionCode;

修改成:

private Double apkVersionCode;

然后采用

 

 <isNotNull prepend="AND" property="apkVersionCode" >
            apk_version_code = #apkVersionCode#
 </isNotNull >

 来解决问题

 

ps:哪位能告诉我为毛double不能执行isGreaterThan操作么? 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值