[mybatis]逆向工程生成的xml调用报MySQLIntegrityConstraintViolationException异常解决

需求描述:

调用逆向工程生成的mapper层方法.

错误描述:

调用updateByExample()方法时就会报错:

Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column ‘id’ cannot be null
; SQL []; Column ‘id’ cannot be null; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column ‘id’ cannot be null

错误原因:

调用的mapper方法为Example后缀(如updateByExample),这类方法对对象中的每个属性都会调用,出现null即报错.

解决方法:

应该调用ExampleSelective后缀的方法(如updateByExampleSelective),这类方法是动态sql,只调用非空属性.

两类方法间的区别可以以下博客:
https://blog.csdn.net/qq_38409944/article/details/82556834

你可能感兴趣的:(bug记录)