zoukankan      html  css  js  c++  java
  • 解决SQL Error: 0, SQLState: S1009,Invalid value for getLong()

    内容简介

    今天遇到一个异常,报出消息为SQL Error: 0, SQLState: S1009,Invalid value for getLong() - 'PH',排查问题后,结果令人哑然失笑,也许Ctrl+C,Ctrl+V让程序员们用的很娴熟,但Ctrl+V之后还是要细心检查代码。

    异常

    看到这个信息,第一反应是执行SQL出错了,检查了参数,数据库字段的类型定义,没啥问题,把参数替换后在Navicat中也能执行并有结果

    代码:

    @Query(value = "select * from t_water_quality_evaluate where ITMID = :itMid AND WQGLLV < :wqgValue AND WQGULV >= :wqgValue limit 1",nativeQuery = true)
    TwaterQualityEvaluate queryByItMidAndValue(@Param(value = "itMid") String itMid, @Param(value = "wqgValue") BigDecimal wqgValue);

    字段字义:

    执行结果:

    这是啥问题呢?我们看信息第二句:Invalid value for getLong() - 'PH',问题出现在itMid这个参数上,我们传入值"PH",这是个varchar类型,却使用getLong获取值,赶紧看看实体类的定义:

    看到了吗?定义了Long类型!改为String后就OK了。

    这个问题明显是在编写实体类时,itMid的定义复制了上面id的代码,只改了名称,没有改类型造成的!

    嗯,Ctrl+V之后,还是要细心一些好。

  • 相关阅读:
    [日料探店] 食一料理
    工地英语
    C++20协程解糖
    C++20协程解糖
    C++20协程解糖
    单表操作
    数据库查询语句罗列
    数据库简易介绍
    mysql的常用操作
    css基础
  • 原文地址:https://www.cnblogs.com/codecat/p/11497039.html
Copyright © 2011-2022 走看看