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 标注在自己创建的无参构造方法上。表示该方法会编入到字节码中。
之后就可以正常使用了。

浙公网安备 33010602011771号