今天遇到一个差点令我崩溃的bug,今天写一个简单的查询语句的时候我发现我数据表里面明明这个字段(tinyint类型)明明有值存在但是我一查就是null
因为刚开始这个实体类是一位前辈创建的,所以刚开始也没怀疑,后面第一次怀疑是不是字段没对上?


检查后发现并没什么问题,后面我越看这is_use这个命名有点奇怪于是,我将让它改成了isUse

然后再次查询就显示正常数据了,后面我去各个博客翻找了以下,没有什么头绪,后面找到一个关于Mybatis-plus驼峰命名规则,才了解。
主流 ORM框架(如 MyBatis-Plus)默认开启 驼峰命名转换(map-underscore-to-camel-case=true),会自动将 Java 的驼峰命名(如isUse)转换为数据库下划线命名(如is_use)。
当我使用is_use作为 Java 属性名时,框架可能错误地将其转换为is__use(双下划线),导致与数据库字段is_use不匹配,查询结果为null。