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、确认转换关系是否对应,调整数据库字段类型或实体类字段类型;
来源:oschina
链接:https://my.oschina.net/u/2308739/blog/691498