java.sql.SQLException: Fail to convert to internal

房东的猫 提交于 2019-12-10 16:48:43

ava.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: Fail to convert to internal representation
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:147)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:209)
    at oracle.jdbc.driver.CharCommonAccessor.getByte(CharCommonAccessor.java:209)
    at oracle.jdbc.driver.OracleResultSetImpl.getByte(OracleResultSetImpl.java:464)
    at com.alibaba.druid.pool.DruidPooledResultSet.getByte(DruidPooledResultSet.java:129)
    at org.springframework.jdbc.support.JdbcUtils.getResultSetValue(JdbcUtils.java:154)
    at org.springframework.jdbc.core.BeanPropertyRowMapper.getColumnValue(BeanPropertyRowMapper.java:311)
    at org.springframework.jdbc.core.BeanPropertyRowMapper.mapRow(BeanPropertyRowMapper.java:249)
    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:93)
    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:60)
    at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:460)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:405)

 

看异常信息中的OracleResultSetImpl.getByte,此条堆栈信息是的描述的是数据库查出的数据转换为 Byte 类型时失败。

经检查数据库表结果中的字段类型及实体类中定义的数据类型。发现在实体类中的app_type 定义为Varchar类型,而数据库中对应的字段为 byte 类型。因此导致数据库在进行映射时发生异常。

问题处理步骤总结: 
1、通过异常信息查找对应的错误字段(比如此例中的getByte); 
2、逐一对照实体类Byte 类型和数据库中该字段的类型。 
3、确认转换关系是否对应,调整数据库字段类型或实体类字段类型;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!