该方法用于取出通过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中。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐