解读可能导致此报错的原因 Error updating database. Cause: java.sql.SQLException: Data truncated for column 'user_id' at row 1
报错详情
org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql.SQLException: Data truncated for column 'user_id' at row 1 ### The error may involve com.joowing.mapper.group.LiveRoomsShareLogsMapper.insertSelective-Inline ### The error occurred while setting parameters ### SQL: insert into live_rooms_share_logs ( org_code, roomid, scene, user_id, phone, guider, path, from_user_id, from_roomid, from_phone, openid, time, dim_date_id, created_at, updated_at ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) ### Cause: java.sql.SQLException: Data truncated for column 'user_id' at row 1 ; ]; Data truncated for column 'user_id' at row 1 ; nested exception is java.sql.SQLException: Data truncated for column 'user_id' at row 1 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java: 104 ) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java: 72 ) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java: 81 ) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java: 81 ) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java: 73 ) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java: 446 ) at com.sun.proxy.$Proxy133.insert(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java: 278 ) at com.baomidou.mybatisplus.core.override.PageMapperMethod.execute(PageMapperMethod.java: 67 ) at com.baomidou.mybatisplus.core.override.PageMapperProxy.invoke(PageMapperProxy.java: 64 ) at com.sun.proxy.$Proxy216.insertSelective(Unknown Source) |
背景:
小程序端传值过来的 user_id 字段为 188f4ed0-f98a-0137-e415-0242ac1e4810,当因为接口定义不明确,故一开始在建表的时候,
习惯性将 id 类给类 long 长整型,因为长度不够,插入的时候报错!
解决方案:
此时报错是因为实体类中对于数据库字段长度不够,将数据库中类型变更为 String 类型并给到 255 长度对应的 model 实体类同步变更,
解决
衍生报错:
1. 检查传入参数是否超过数据库中给定类型长度
2. 检查是否存在表字段中数据类型跟实体定义中字段的数据类型不一致的
3. 如果对于表字段有过调整,检查 mapper.xml 文件中的类型是否全部更改清楚的
4. 检查数据库链接配置是否串环境的(在本地修改的字段数据,拉了代码后配置被冲掉,连到了其他环境)
5. 如若各方检查都感觉无误,重启项目,并清除所在模块下的 target 文件夹(其中存的是编译后的 class 文件),
排除部分代码更改后未被重现编译的情况