diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/MapperQueryChain.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/MapperQueryChain.java index 134ac2e7..6cf94b42 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/MapperQueryChain.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/MapperQueryChain.java @@ -18,8 +18,12 @@ package com.mybatisflex.core.query; import com.mybatisflex.core.BaseMapper; import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.relation.RelationManager; +import com.mybatisflex.core.util.LambdaGetter; +import com.mybatisflex.core.util.LambdaUtil; import com.mybatisflex.core.util.SqlUtil; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -194,4 +198,19 @@ public interface MapperQueryChain extends ChainQuery { return new RelationsBuilder<>(this); } + /** + * 使用 Relations Query 的方式进行关联查询。 + * @param columns 需要关联的字段 + * @return Relations Query 查询 + */ + default RelationsBuilder withRelations(LambdaGetter... columns) { + if(columns != null && columns.length > 0) { + String[] array = Arrays.stream(columns) + .map(LambdaUtil::getFieldName) + .toArray(String[]::new); + RelationManager.addQueryRelations(array); + } + return new RelationsBuilder<>(this); + } + }