mybatis映射实体类错误

碰见一个奇怪的问题,使用MyBatis-plus去获取数据库一直报

Cannot determine value type from string 'M'

这个错误。讲道理应该代码没什么问题。主要功能就是获取数据库中的menu

实体类

@Data
@Builder
@TableName(value = "hm_menu")
@ApiModel("菜单类")
@EqualsAndHashCode(callSuper = true)
public class HmMenuEntity extends BaseEntity{

....


@ApiModelProperty("菜单类型(M目录 C菜单 F按钮)")
private String menuType;

}

根据网上文章 https://blog.csdn.net/luxiaoruo/article/details/106637446
才知道因为mybatis映射实体的时候需要 无参构造方法 @Data标签默认会创建一个无参构造方法。但是添加@Builder后会取消无参构造方法,改成有参。导致mybatis无法实例化

修改方法是使用@NoArgsConstructor @AllArgsConstructor 同时加到 实体类上

方法一

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "hm_menu")
@ApiModel("菜单类")
@EqualsAndHashCode(callSuper = true)
public class HmMenuEntity extends BaseEntity{

}

方法二

也可以使用
lombok的@Tolerate 标注在自己创建的无参构造方法上。表示该方法会编入到字节码中。

之后就可以正常使用了。

posted @   今晚大老虎  阅读(383)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示