lombok和MybatisX-Generator一起使用生成实体类和mapper以及service遇到的小坑

今天在使用MybatisX-Generator插件和lombok插件创建实体类的时候,发现lombok帮助我们生成的实体类居然报错,于是我便在网上找了好久都没有解决方案,最后,自己去代码中慢慢找,最后终于找到了问题所在。

先看看实体类中的爆红代码块:

 发现居然是没有get方法,上面明明有@Data注释,而且也引进了插件,为什么报错呢?下面就解释一下爆红的原因

首先看我数据库的需要生成实体类的表中的字段:

再看看勾选lombok后利用MybatisX-Generator插件帮助我们生成的实体类:

@TableName(value ="com_user")
@Data
public class ComUser implements Serializable {
    /**
     * 用户id
     */
    @TableId(type = IdType.AUTO)
    private Integer uId;


    /**
     * 登录名
     */
    private String uLoginname;

    /**
     * 用户名
     */
    private String uUsername;

    /**
     * 真实姓名
     */
    private String uRealname;

发现 当我们数据库中的某个字段有下划线'_'时,MybatisX-Generator帮助我们生成的实体类中与之对应的变量会将这个下划线后的第一个字母大写。例如上面我数据库的字段交u_id,生成的实体类中的变量就叫uId,在爆红代码段发现他自动生成调用的是getuId(),并没有将我的变量名第一个字母大写,写成getUId().。但是我们通过@Data注解生成的get和set是将我们的变量的首字母进行大写的,所以在调用get方法的时候找不到对应的方法。

解决方案:不用@Data注解,自己通过idea生成get和set,或者是将对应的get方法改名。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于自动生成实体类mapper的问题,可以考虑使用MyBatis Generator插件来实现。MyBatis Generator是一个官方支持的代码生成工具,可以根据数据库表结构自动生成实体类mapper接口。 以下是一些简单的步骤来使用MyBatis Generator插件来生成实体类mapper: 1. 首先,您需要在您的项目中引入MyBatis Generator插件的依赖。您可以在pom.xml文件(如果您使用Maven)或build.gradle文件(如果您使用Gradle)中添加相应的依赖。 2. 接下来,编写一个MyBatis Generator的配置文件(一般命名为generatorConfig.xml),用于定义生成实体类mapper的规则。配置文件中包含了数据库连接信息、要生成的表、生成的目标包等信息。 3. 在配置文件中,您可以配置生成实体类的规则,例如是否使用Lombok注解、是否生成对应字段的getters和setters等。 4. 配置好generatorConfig.xml文件后,您可以执行MyBatis Generator插件来生成实体类mapper。一般情况下,可以通过命令行或者IDE中的插件来执行。 5. 执行成功后,您将在指定的目标包中看到生成实体类mapper接口。这些文件将根据您在配置文件中定义的规则生成。 需要注意的是,使用MyBatis Generator插件生成实体类mapper只是初始化的代码,您仍然需要根据需要进行调整和扩展。 希望以上信息对您有所帮助!如有更多问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值