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 标注在自己创建的无参构造方法上。表示该方法会编入到字节码中。
之后就可以正常使用了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端