Interface QueryLabel<Children>

All Known Implementing Classes:
MPJLambdaWrapper

public interface QueryLabel<Children>
对一或对多查询
Since:
1.3.0
Author:
yulichang
  • Method Details

    • addLabel

      void addLabel(Label<?> label, boolean isCollection)
    • getChildren

      Children getChildren()
    • selectCollection

      default <S, C, Z, F extends Collection<?>> Children selectCollection(Class<C> child, com.baomidou.mybatisplus.core.toolkit.support.SFunction<S,F> dtoField)
      一对多查询 调用此方法必需要调用对应的 left join / right join ... 连表方法,否则会报错

      举例 UserDO AddressDO 为一对多关系 UserDTO 为结果类

           MPJLambdaWrapper<UserDO> wrapper = new MPJLambdaWrapper<UserDO>();
           wrapper.selectAll(UserDO.class)
                  .selectCollection(AddressDO.class, UserDTO::getAddressListDTO)
                  .leftJoin(AddressDO.class, ...... )
                  .eq(...)
                  ...
       
       会自动将 AddressDO类中相同属性的字段 以mybatis<collection>的方式映射到UserDTO.addressListDTO属性中
      Type Parameters:
      S - 包装类
      C - 对多数据库实体类
      Z - 包装类集合泛型
      F - 包装类集合字段泛型
      Parameters:
      child - 连表数据库实体类
      dtoField - 包装类对应的属性
      Since:
      1.3.0
    • selectCollection

      default <S, C, Z, F extends Collection<?>> Children selectCollection(String prefix, Class<C> child, com.baomidou.mybatisplus.core.toolkit.support.SFunction<S,F> dtoField)
    • selectCollection

      default <S, C, Z, F extends Collection<Z>> Children selectCollection(Class<C> child, com.baomidou.mybatisplus.core.toolkit.support.SFunction<S,F> dtoField, MFunction<MybatisLabel.Builder<C,Z>> collection)
      一对多查询 调用此方法必需要调用对应的 left join / right join ... 连表方法,否则会报错

      举例 UserDO AddressDO 为一对多关系 UserDTO 为结果类

         MPJLambdaWrapper<UserDO> wrapper = new MPJLambdaWrapper<UserDO>()
            .selectAll(UserDO.class)
            .selectCollection(AddressDO.class, UserDTO::getAddressListDTO, map -> map
                 .id(AddressDO::getId, AddressDTO::getId)                 //如果属性名一致 可以传一个
                 .result(AddressDO::getUserId)                            //如果属性名一致 可以传一个
                 .result(AddressDO::getAddress, AddressDTO::getAddress))  //如果属性名一致 可以传一个
            .leftJoin(AddressDO.class, ...... )
            .eq(...)
            ...
       
      
       会自动将 AddressDO类中指定的字段 以mybatis<collection>的方式映射到UserDTO.addressListDTO属性中
      Type Parameters:
      S - 包装类
      C - 对多数据库实体类
      Z - 包装类集合泛型
      F - 包装类集合字段泛型
      Parameters:
      child - 连表数据库实体类
      dtoField - 包装类对应的属性
      collection - collection标签内容
      Since:
      1.3.0
    • selectCollection

      default <S, Z, F extends Collection<Z>> Children selectCollection(com.baomidou.mybatisplus.core.toolkit.support.SFunction<S,F> dtoField, MFunction<MybatisLabelFree.Builder<Z>> collection)
    • selectCollection

      default <S, C, Z, F extends Collection<Z>> Children selectCollection(String prefix, Class<C> child, com.baomidou.mybatisplus.core.toolkit.support.SFunction<S,F> dtoField, MFunction<MybatisLabel.Builder<C,Z>> collection)
    • selectAssociation

      default <S, C, F> Children selectAssociation(Class<C> child, com.baomidou.mybatisplus.core.toolkit.support.SFunction<S,F> dtoField)
      对一查询 用法参考 selectCollection
      Since:
      1.3.0
    • selectAssociation

      default <S, C, F> Children selectAssociation(String prefix, Class<C> child, com.baomidou.mybatisplus.core.toolkit.support.SFunction<S,F> dtoField)
    • selectAssociation

      default <S, C, F> Children selectAssociation(Class<C> child, com.baomidou.mybatisplus.core.toolkit.support.SFunction<S,F> dtoField, MFunction<MybatisLabel.Builder<C,F>> collection)
      对一查询 用法参考 selectCollection
      Since:
      1.3.0
    • selectAssociation

      default <S, C, F> Children selectAssociation(com.baomidou.mybatisplus.core.toolkit.support.SFunction<S,F> dtoField, MFunction<MybatisLabelFree.Builder<F>> collection)
    • selectAssociation

      default <S, C, F> Children selectAssociation(String prefix, Class<C> child, com.baomidou.mybatisplus.core.toolkit.support.SFunction<S,F> dtoField, MFunction<MybatisLabel.Builder<C,F>> collection)