zoukankan      html  css  js  c++  java
  • 踩坑纪录——Lombok加Builder注解后mybatis无法识别字段正确类型

    一、问题描述

     1 @Data
     2 @EqualsAndHashCode(callSuper = true)
     3 
     4 @Builder
     5 
     6 @TableName("company_user")
     7 
     8 public class CompanyUserPO extends SuperEntity {
     9 
    10 /**
    11 
    12 * 企业ID
    13 
    14 */
    15 
    16 private String companyId;
    17 
    18 /**
    19 
    20 * 是否删除,1为删除,0为未删除
    21 
    22 */
    23 
    24 private int deleteFlag;
    25 
    26 // ...省略部分代码...
    27 
    28 }
    29 
    30 
    31 public interface CompanyUserMapper extends BaseMapper<CompanyUserPO> {
    32 
    33 }
    34 
    35 private void checkIfRegistered(String phone) {
    36 
    37 QueryWrapper<CompanyUserPO> queryCompanyUser = new QueryWrapper<>();
    38 
    39 queryCompanyUser.eq("delete_flag", 0);
    40 
    41 queryCompanyUser.eq("phone_number", phone);
    42 
    43 CompanyUserPO existCompanyUser = companyUserMapper.selectOne(queryCompanyUser);
    44 
    45 // ...省略部分代码...
    46 
    47 }

     在selectOne的时候报错:

    nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '1.24552615981764198E18' in column '4' is outside valid range for the datatype INTEGER.

    二、问题发现

    直接在字段上加上@TableField(typeHandler = StringTypeHandler.class, jdbcType = JdbcType.VARCHAR)或者配置mapper.xml文件都报同样的错误,排除是mybatis plus的问题。注释掉实体类上的@Builder后发现错误消失,确定是Lombok插件的问题。

    三、问题解决

    去掉实体类上的@Builder注解或者再添加上@AllArgsConstructor和@NoArgsConstructor两个注解。

  • 相关阅读:
    给你的QQ秀添加声音方法,如何打开QQ聊天窗口播放声音
    Flash 重绘的发生
    nexus one使用apndroid关不掉联通3G的解决办法 [转]
    \\无题
    \\入手N1
    WinRAR的三种安全战术
    如何巧用DOS命令快速把系统问题看个透
    Adobe Creative Suite 5 Master Collection 尝鲜
    \\无题
    质量管理工具Sonar中名词解释
  • 原文地址:https://www.cnblogs.com/goingforward/p/12092026.html
Copyright © 2011-2022 走看看