Error attempting to get column ‘xxx‘ from result set. Cause: java.sql.SQLDataException错误的解决方法

2023-05-16

文章目录

  • 1. 复现错误
  • 2. 分析错误
  • 3. 解决错误
  • 4. 文末总结

1. 复现错误


今天写好导入hive表的详情列表的接口,如下代码所示:

  /**
   * hive表导入的回调接口
   *
   * @author super先生
   * @datetime 2023/3/20:16:32
   * @return
   */
  @ResponseBody
  @GetMapping(value = "/xxx/importTables/detail")
  public ServiceStatusData localHiveImportTablesDetail(
          @RequestParam("datasetId") Long datasetId) {
    logger.info("mock数据的入参记录:datasetId={}", datasetId);
    if (null == datasetId) {
      return new ServiceStatusData(ServiceStatusData.Status.Fail, "入参错误:缺少任务id", null);
    }
    return hiveImportTaskService.localHiveImportTablesDetail(datasetId);
  }

启动postman访问该接口,确报出如下错误:

在这里插入图片描述

Error attempting to get column 'missionId' from result set. Cause: java.sql.SQLDataException: Cannot determine value type from string 'missionMockId'\n; SQL []; Cannot determine value type from string 'missionMockId'; nested exception is java.sql.SQLDataException: Cannot determine value type from string 'missionMockId'

2. 分析错误


根据java.sql.SQLDataException可知,这是sql数据的错误异常。

其次,再将错误信息Error attempting to get column 'missionId' from result set,翻译成中文是尝试从结果集中获取列“missionId”时出错

为什么尝试从结果集中获取列“missionId”时出错呢?继续分析错误信息。

接着将错误信息Cannot determine value type from string 'missionMockId',翻译成中文是无法从字符串“missionMockId”确定值类型

为什么无法确定missionMockId值类型呢?在Navicat中执行hiveImportTaskMapper.xml中的sql语句,如下代码所示:

<select id="listByDatasetId" parameterType="java.lang.Long" resultType="com.xxx.HiveTableDetailVo">
 SELECT
	hit.id AS id,
	du.user_name AS username,
	hit.user_id AS userId,
	hit.dataset_id AS datasetId,
	hit.mission_id AS missionId,
	hit.mission_state AS missionState,
	date_format( hit.create_time, '%Y-%m-%d %H:%I:%s' ) AS createTime,
	date_format( hit.call_back_time, '%Y-%m-%d %H:%I:%s' ) AS callbackTime,
	hit.import_result AS remark
 FROM
	hive_import_task hit
	LEFT JOIN `user` du ON du.user_id = hit.user_id
 WHERE
	dataset_id = #{datasetId}
 order by hit.create_time desc
    </select>

将上述代码中的#{datasetId}替换成实际值2后,执行结果如下图所示:

在这里插入图片描述

从上图中,可以很清楚地看到missionId的值为missionMockId,这是字符串类型的。

接着分析hiveImportTaskMapper.xml中的select标签中的返回类型(resultType),即是HiveTableDetailVo类:

在这里插入图片描述

HiveTableDetailVo代码如下所示:

/**
* @author super先生
* @datetime 2023/3/23 14:21
* @desc 导入hive表的详情列表
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
public class HiveTableDetailVo {
	 private Long id;
	 private String username;
	 private Long userId;
	 private Long datasetId;
	 private Long missionId;
	 private String missionState;
	 private String createTime;
	 private String callbackTime;
	 private String remark;
}

HiveTableDetailVo类中,可以清晰地看到missionId的类型是Long,而mysql查询出的missionId值为missionMockId,即字符串类型。

总结错误原因为:HiveTableDetailVo类中定义missionId的类型和mysql查询出的missionId值类型不一致,故而sql报出无法确定missionId值类型。

3. 解决错误


既然HiveTableDetailVo类中定义missionId的类型和mysql查询出的missionId值类型不一致,那就修改?HiveTableDetailVo类中定义missionId的类型为String,如下代码所示:

/**
* @author super先生
* @datetime 2023/3/23 14:21
* @desc 导入hive表的详情列表
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
public class HiveTableDetailVo {
	 private Long id;
	 private String username;
	 private Long userId;
	 private Long datasetId;
	 private String missionId;
	 private String missionState;
	 private String createTime;
	 private String callbackTime;
	 private String remark;
}

在这里插入图片描述

重新启动项目,再次使用postman测试,方可成功运行,如下图所示:

在这里插入图片描述

4. 文末总结


通过Error attempting to get column 'missionId' from result set. Cause: java.sql.SQLDataException: Cannot determine value type from string 'missionMockId'错误的分析与解决可知,一般报出类似错误的原因如下:

实体类的属性类型同mysql查询出来的值类型不一致导致的。

解决方法就是修改实体类的属性类型,来适配mysql查询出来的值类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Error attempting to get column ‘xxx‘ from result set. Cause: java.sql.SQLDataException错误的解决方法 的相关文章

  • 类型“String”不是 get 方法 flutter 中类型“Null”的子类型

    我收到此错误 在 get 方法 flutter 中 类型 String 不是类型 Null 的子类型 这是我使用的 get api 函数 Future
  • Facebook SDK 未加载...all.js GET 失败

    我正在使用中提供的相同代码here http developers facebook com docs reference javascript div div
  • NestJS 从 GridFS 返回一个文件

    我正在尝试使用 Nest 控制器从 GridFS 返回文件 据我所知 Nest 不尊重我的习惯content type我设置的标题application zip 因为我在返回时收到文本内容类型 参见屏幕截图 响应数据图像 错误的内容类型标头
  • Meteor:将图像从 url 保存到 AWS S3 存储

    我正在尝试在服务器端通过其网址从网络获取图像 即http www skrenta com images stackoverflow jpg http www skrenta com images stackoverflow jpg 并使用
  • 当 HTTP POST 重定向到 GET 时,POST 正文会发生什么?

    按照我之前的question https stackoverflow com questions 4939195 redirecting an http post 我需要将 HTTP POST 请求重定向到不同的服务器 我相信这可以使用 p
  • 如何设置$_GET变量

    我如何设置变量 GET函数将能够使用 无需提交表单action GET GET包含在 URL 中传递给脚本的键 值 如果您有以下网址 http www example com test php a 10 b plop Then GET将包含
  • 如何使用 AngularJS 删除 GET 参数?

    order 123 status success 到达路线 order id 并采取OrderCtrl 一旦我们访问 routeParams query 我们想要清除 url order 123 如何才能实现这一目标 使用 location
  • HTTP 动词 - 何时使用 GET/POST/PUT/Delete

    当您从事 RESTFUL 服务时 您经常会听到这些术语GET POST PUT DELETE 我的问题是这么多动词背后的想法是什么 我可以在以下人的帮助下实现一切GET动词或者如果我想在消息正文中发布一些大数据 我可以使用POST动词 我认
  • PHP 自动“GET”变量

    我正在为我的公司设计一个新网站 我正在尝试实现切换导航 这是我过去在所有网站上使用的 由于某种原因 当我转到index php x products 时没有任何反应 它仍然显示 inc main php 换句话说 它没有从 URL 中检测到
  • 使用 PHP 和 $_GET[''] 在 中传递多个变量

    我正在使用 PHP 根据变量创建链接 目前我有这行代码 我已经使用过多次并且工作完美 echo a href value2 a 以上全部在一行 在接收页面我有 assignmentName GET assignName 它从 URL 中检索
  • 在 HTML 或 JavaScript 中设置自定义 userAgent

    有什么办法可以做到这一点吗 我正在尝试向网站发送 GET 请求 但我想自定义我的 UserAgent 有没有办法用纯 HTML 和 JavaScript 来做到这一点 我希望它全部在本地执行 这对我有用 Object definePrope
  • Facebook Graph API 返回空数据集

    我正在尝试使用 Graph API Explorer 为我的应用程序创建访问令牌 以使用 me accounts 查看我的页面 但是 每次我尝试此操作时 它都会返回一个空数据集 我已经选择了manage pages作为权限 但它仍然不起作用
  • 底层连接已关闭:(HttpWebRequest) - C#

    我正在编写一段代码来通过 POST 请求验证用户名和密码 但收到一条错误消息 提示 底层连接已关闭 我正在尝试将带有 GET 请求的旧代码转换为带有 POST 请求的新代码 我的 GET 代码工作正常 旧代码 string url http
  • GET 或 POST 哪个比另一个更安全?

    当比较 HTTP GET 和 HTTP POST 时 从安全角度来看有什么区别 其中一种选择本质上比另一种更安全吗 如果是这样 为什么 我意识到 POST 不会公开 URL 上的信息 但是这有什么真正的价值 还是只是通过模糊来实现安全 当考
  • 来自浏览器的带有正文的异步 GET 请求

    好吧 我知道这是一个坏主意 不应该这样做 但为了这个问题 请假设没有其他方法 我得到的 API 端点需要以空对象作为主体的 GET 请求 有没有办法从浏览器执行异步请求 我在用着axios使用的库XMLHttpRequest在引擎盖下和MD
  • HTML
    标签导致 Rails 表单提交 GET 而不是 POST 请求

    我有一个可以正常工作的表单 直到我添加样式标签 我正在使用 twitter bootstrap 该应用程序是 Rails 3 1 我使用的是 Mac 这是一个可以正常工作的表格 没有任何问题 div class alert message
  • 我想向我的销售点的用户授予特权,但我不知道如何做,有什么建议吗?

    我有一个问题 我有一个用netBeans制作的销售点系统 2个用户可以在我的系统中注册 管理员 和 供应商 系统中有几个模块 包括 Inventario 模块允许您在数据库中输入 修改 删除和搜索文章 问题是我希望只有管理员有权限进入该模块
  • Servlet和路径参数如/xyz/{value}/test,如何在web.xml中映射?

    servlet是否支持url如下 xyz value test 其中值可以用文本或数字替换 如何在 web xml 中映射它 最好的选择是 URL 模式 xyz The 服务程序接口 https jakarta ee specificati
  • Ruby 中的参数化 get 请求?

    如何创建 HTTPGETRuby 中带参数的请求 这很容易做到 当你POSTing require net http require uri HTTP post form URI parse http www example com sea
  • REST Web 服务 - 动态查询参数

    我需要将动态查询参数发送到 REST Web 服务 GET 方法 如下所示 主机 端口 应用程序 field1 XXX value1 VVV field2 XXX value2 XXX 消费者可以发送参数最多为字段和值 每个字段都映射到值

随机推荐