mybatisplus字段名称有下划线读取不到值的问题
问题
环境:springboot + mybatis-plus
现在有这么⼀个实体硫酸质量分数
10000.sc.ity;冥火之触
征文比赛评分标准import batisplus.annotation.TableField;如何找人
描写河流的句子
import batisplus.annotation.TableName;
import java.io.Serializable;
@TableName(value ="your_table")
public class Info implements Serializable {
/**
* 姓名
*/
@TableField(value ="PERSON_NAME")
private String person_name;
public String getPerson_name(){
return person_name;
}
public void tPerson_name(String person_name){
this.person_name = person_name;
}
}
实体有⼀个字段叫person_name,并且我指定了数据库⾥⾯的字段为PERSON_NAME(TableField注解),但是查询的时候值为null,其他不带下划线的字段值正常
⽤⼤腿都能想到肯定和下划线有关系,最终在mybatis-plus官⽹找到这么⼀段话:
# 官⽹ /guide/faq.html#cau-org-apache-ibatis-type-typeexception-error-tting-null-for-parameter-1-with-jdbctype-other
MybatisConfiguration configuration =new MybatisConfiguration();
configuration.tDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
configuration.tJdbcTypeForNull(JdbcType.NULL);
5的英文怎么写configuration.tMapUnderscoreToCamelCa(true);//开启下划线转驼峰
sqlSessionFactory.tConfiguration(configuration);
开启了下划线转驼峰,这不多此⼀举吗,我都指定了实体字段和数据库字段的映射关系,偏还给我转驼峰,转成personName了,⼀看实体⾥⾯没有personName当然是null了
解决
所以你只要告诉mybatis-plus我不要下划线转驼峰即可,mybatis-plus底层也就是mybatis,总之不管什么⽅式,你要配置⼀下,如下是yml配置
mybatis-plus:
configuration:
map-underscore-to-camel-ca:fal # 数据库下划线⾃动转驼峰标⽰关闭
或者properties格式配置mybatis
源码
在org.flection.MetaClass的⽅法findProperty⾥⾯:
public String findProperty(String name,boolean uCamelCaMapping){
韩国电影现爱
if(uCamelCaMapping){
name = place("_","");
}
return findProperty(name);
五谷指的是哪五种粮食
}
如果设置了uCamelCaMapping为true,就简单粗暴的把下划线⼲掉了