mybatispuls报错,找不到字段,但是我数据库表里有字段,del_flag
时间: 2024-02-02 08:04:50 浏览: 103
出现这种情况可能是因为MybatisPlus默认开启了驼峰命名转换,而您的表中的字段名是下划线命名的,导致MybatisPlus找不到该字段。您可以试试以下方法解决该问题:
1. 在实体类对应字段上添加@TableField注解,指定该字段名对应的数据库字段名,例如:
```java
@TableField(value = "del_flag")
private Integer delFlag;
```
2. 在MybatisPlus的全局配置中,禁用驼峰命名转换,例如:
```java
@Configuration
@MapperScan("com.example.mapper")
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
return new MybatisPlusInterceptor();
}
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> configuration.setObjectWrapperFactory(new MybatisMapWrapperFactory());
}
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource);
sqlSessionFactory.setTypeAliasesPackage("com.example.entity");
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setDbConfig(new GlobalConfig.DbConfig().setCapitalMode(false));
sqlSessionFactory.setGlobalConfig(globalConfig);
MybatisConfiguration configuration = new MybatisConfiguration();
configuration.setMapUnderscoreToCamelCase(false);
sqlSessionFactory.setConfiguration(configuration);
sqlSessionFactory.setPlugins(new Interceptor[]{
new PaginationInterceptor(),
new OptimisticLockerInterceptor(),
new MybatisPlusInterceptor()
});
return sqlSessionFactory.getObject();
}
}
```
配置中的`configuration.setMapUnderscoreToCamelCase(false)`即为禁用驼峰命名转换的配置。
希望以上方法可以帮到您。
阅读全文