无法转换为内部表示

简介: 无法转换为内部表示

系统查询表记录时出现“java.sql.SQLException: 无法转换为内部表示”异常,抛出的异常信息如下:

Stacktrace follows:
java.sql.SQLException: 无法转换为内部表示
    at oracle.jdbc.driver.CharCommonAccessor.getLong(CharCommonAccessor.java:297)
    at oracle.jdbc.driver.T4CVarcharAccessor.getLong(T4CVarcharAccessor.java:852)
    at oracle.jdbc.driver.OracleResultSetImpl.getLong(OracleResultSetImpl.java:971)
    at oracle.jdbc.driver.OracleResultSet.getLong(OracleResultSet.java:440)
    at org.apache.commons.dbcp.DelegatingResultSet.getLong(DelegatingResultSet.java:278)
    at org.apache.commons.dbcp.DelegatingResultSet.getLong(DelegatingResultSet.java:278)
    at ismp.RealNameLibController$_closure2.doCall(RealNameLibController.groovy:34)
    at ismp.RealNameLibController$_closure2.doCall(RealNameLibController.groovy)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

看异常信息中的oracle.jdbc.driver.CharCommonAccessor.getLong,此条堆栈信息是的描述的是数据库查出的数据转换为Long类型时失败。经检查数据库表结果中的字段类型及实体类中定义的数据类型。发现在实体类中的ID定义为Long类型,而数据库中对应的字段为varchar2类型。因此导致数据库在进行映射时发生异常。类似常见的问题如:数据库里为Number,而Java定义的对应属性类型为String。


问题处理步骤总结:

1、通过异常信息查找对应的错误字段(比如此例中的getLong);

2、逐一对照实体类和数据库中为Long类型的数据;

3、确认转换关系是否对应,调整数据库字段类型或实体类字段类型;


目录
相关文章
|
7月前
|
C++
有趣的动态转换
有趣的动态转换
|
1月前
模式间转换
模式间转换。
11 1
|
1月前
|
编译器 C++
47不同类型数据间的转换
47不同类型数据间的转换
5 0
|
4月前
定义和声明的区别 以及 内部和外部函数
把建立存储空间的变量声明称定义; 不需要建立存储空间的声明称为声明; c为例, 在函数中出现的对变量的声明(除了用extern声明的以外)都是定义 在函数中对其他函数的声明不是函数的定义 详细见c程序设计-谭浩强 196-197页
24 0
|
9月前
【各种进之间的转换】
【各种进之间的转换】
|
10月前
|
JavaScript 索引
数据类型及相互规则转换,我被问麻了!!!
数据类型及相互规则转换,我被问麻了!!!
86 2
|
10月前
|
C语言 C++
C++——数据类型之间的转换
C++——数据类型之间的转换
|
存储 程序员 C语言
如何进行C++动态转换
如何进行C++动态转换
如何进行C++动态转换
|
JSON JavaScript C语言
转换类型的那些事儿
转换类型的那些事儿
88 0
|
JavaScript 前端开发 算法
从规范的角度解析对象 — 原始值转换
从规范的角度解析对象 — 原始值转换
103 0
从规范的角度解析对象 — 原始值转换

热门文章

最新文章