当我们配置好数据字典的时候
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
/**
* 集成数据字典功能
* @param dataSource
* @return
*/
@Bean
public DictionaryInterceptor dictionaryInterceptor(DataSource dataSource) {
// 数据字典 配置表
DatabaseTable config = new DatabaseTable();
String[] configColumn = new String[]{"item_name", "item_value", "item_type"};
String[] configCondition = new String[]{"1 = 1"};
String configTableName = "sys_data";
config.setColumn(configColumn);
config.setConditions(configCondition);
config.setTableName(configTableName);
DatabaseLoader dbLoader = new DatabaseLoader(dataSource);
dbLoader.addDictionaryTable(config);
DictionaryInterceptor interceptor = new DictionaryInterceptor(dbLoader);
return interceptor;
}
}
然后查询表中某一个字段
QueryWrapper<Evalua> queryWrapper=new QueryWrapper<>();
queryWrapper.select("distinct NET_SECRET");
queryWrapper.groupBy("NET_SECRET");
List<Evalua> list =evaluaMapper.selectList(queryWrapper);
for(Evalua e:list) {
System.out.println(e);
}
其中表中这个字段有null值,list里面就会存有null,这时候就会出现空指针;但是我们查询的是全部字段的时候,list没有null的话,又不会报
或者我们将上面的数据字典的bean注释掉,也不会报错。
也就是说如果配置了DictionaryInterceptor的bean,查询出的数据有null值,就会报错(空指针)。
关键不太懂,记录一下。