该方法用于取出通过MybatisPlus查询到的数据并放入List中,其中取出的数据并不包括对象所有的字段,最多只能返回一个字段。
源码如下:
default <V> List<V> listObjs(Wrapper<T> queryWrapper, Function<? super Object, V> mapper) {
return (List)this.getBaseMapper().selectObjs(queryWrapper).stream().filter(Objects::nonNull).map(mapper).collect(Collectors.toList());
}
对于Function入参,其中通过实现apply接口,进行类型转换,其中Object类型的参数是我们实体类中使用Mp的@TableId注解标注的属性。
如果没有标注注解,则根据属性名对应数据库表的字段进行匹配查找(参数一般都是主键id,除非你使用@TableId注解标注了其他字段)。
-
第一种情况,查询主键。此时会将查询到的所有主键id放入list中。
-
第二种情况,select *。默认查询数据库的主键,查询结果为主键(id),并将其放入list中。
-
第三种情况,查询非主键的其他字段,将查询字段放入list中。
-
第四种情况,查询多个字段,默认查询传入的第一个字段,并将第一个字段的查询结果放入list中。