本文主要是介绍mybatis-plus更新或者批量更新时报Invalid bound statement (not found):xxx.updateById,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
mybatis-plus更新或者批量更新时报Invalid bound statement (not found):xxx.updateById
错误日志
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):com.study.batch.update.dao.DeptMapper.updateByIdat org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:229)at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.<init>(MybatisMapperMethod.java:50)at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedInvoker$0(MybatisMapperProxy.java:111)at com.baomidou.mybatisplus.core.toolkit.CollectionUtils.computeIfAbsent(CollectionUtils.java:142)at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedInvoker(MybatisMapperProxy.java:98)at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
错误分析
看着错误是没有updateById,这就很离谱了,updateById不是mybatis-plus提供的默认方法吗?怎么会没有呢?
第一感觉是Mapper接口和Mapper对应的xml没有绑定,但是其他自定义方法是可以正常使用的,所以可以排除绑定关系不对的问题
错误原因
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("dept")
public class Dept {// @TableId(value = "deptno", type = IdType.AUTO)private Integer deptno;@TableField("dname")private String dname;@TableField("loc")private String loc;}
手贱删除了实体类上的@TableId注解,原本想从mybatis-plus改成mybatis,就删了所有和mybatis-plus相关的注解,后来又改成了mybatis-plus,注解就忘记加回来了,离了个大普了,问为啥要在两者之间来回切换,就是闲的(测试两者的区别)
这篇关于mybatis-plus更新或者批量更新时报Invalid bound statement (not found):xxx.updateById的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!