first 添加分页

This commit is contained in:
yulichang 2024-08-01 06:46:35 +08:00
parent 17936814b0
commit ad4df5b939
26 changed files with 108 additions and 132 deletions

View File

@ -35,15 +35,6 @@
<url>https://github.com/yulichang/mybatis-plus-join</url> <url>https://github.com/yulichang/mybatis-plus-join</url>
</scm> </scm>
<properties>
<jdkVersion>1.8</jdkVersion>
<jdkVersion.test>1.8</jdkVersion.test>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<github.global.server>github</github.global.server>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>

View File

@ -35,15 +35,6 @@
<url>https://github.com/yulichang/mybatis-plus-join</url> <url>https://github.com/yulichang/mybatis-plus-join</url>
</scm> </scm>
<properties>
<jdkVersion>1.8</jdkVersion>
<jdkVersion.test>1.8</jdkVersion.test>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<github.global.server>github</github.global.server>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>

View File

@ -33,15 +33,6 @@
<url>https://github.com/yulichang/mybatis-plus-join</url> <url>https://github.com/yulichang/mybatis-plus-join</url>
</scm> </scm>
<properties>
<jdkVersion>1.8</jdkVersion>
<jdkVersion.test>1.8</jdkVersion.test>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<github.global.server>github</github.global.server>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.github.yulichang</groupId> <groupId>com.github.yulichang</groupId>

View File

@ -33,15 +33,6 @@
<url>https://github.com/yulichang/mybatis-plus-join</url> <url>https://github.com/yulichang/mybatis-plus-join</url>
</scm> </scm>
<properties>
<jdkVersion>1.8</jdkVersion>
<jdkVersion.test>1.8</jdkVersion.test>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<github.global.server>github</github.global.server>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.github.yulichang</groupId> <groupId>com.github.yulichang</groupId>

View File

@ -33,15 +33,6 @@
<url>https://github.com/yulichang/mybatis-plus-join</url> <url>https://github.com/yulichang/mybatis-plus-join</url>
</scm> </scm>
<properties>
<jdkVersion>1.8</jdkVersion>
<jdkVersion.test>1.8</jdkVersion.test>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<github.global.server>github</github.global.server>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>

View File

@ -33,15 +33,6 @@
<url>https://github.com/yulichang/mybatis-plus-join</url> <url>https://github.com/yulichang/mybatis-plus-join</url>
</scm> </scm>
<properties>
<jdkVersion>1.8</jdkVersion>
<jdkVersion.test>1.8</jdkVersion.test>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<github.global.server>github</github.global.server>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.github.yulichang</groupId> <groupId>com.github.yulichang</groupId>

View File

@ -33,13 +33,4 @@
<developerConnection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</developerConnection> <developerConnection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</developerConnection>
<url>https://github.com/yulichang/mybatis-plus-join</url> <url>https://github.com/yulichang/mybatis-plus-join</url>
</scm> </scm>
<properties>
<jdkVersion>1.8</jdkVersion>
<jdkVersion.test>1.8</jdkVersion.test>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<github.global.server>github</github.global.server>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project> </project>

View File

@ -55,6 +55,8 @@ public abstract class KtAbstractLambdaWrapper<T, Children extends KtAbstractLamb
*/ */
@Getter @Getter
protected boolean resultMap = false; protected boolean resultMap = false;
@Getter
protected boolean resultMapCollection = false;
/** /**
* 表序号 * 表序号
*/ */
@ -445,6 +447,7 @@ public abstract class KtAbstractLambdaWrapper<T, Children extends KtAbstractLamb
super.clear(); super.clear();
this.alias = ConfigProperties.tableAlias; this.alias = ConfigProperties.tableAlias;
this.resultMap = false; this.resultMap = false;
this.resultMapCollection = false;
this.tableIndex = 1; this.tableIndex = 1;
this.dynamicTableName = false; this.dynamicTableName = false;
this.tableFunc = null; this.tableFunc = null;

View File

@ -159,7 +159,10 @@ public class KtLambdaWrapper<T> extends KtAbstractLambdaWrapper<T, KtLambdaWrapp
} }
@Override @Override
public void addLabel(Label<?> label) { public void addLabel(Label<?> label, boolean isCollection) {
if (isCollection) {
this.resultMapCollection = true;
}
this.resultMap = true; this.resultMap = true;
this.resultMapMybatisLabel.add(label); this.resultMapMybatisLabel.add(label);
} }

View File

@ -23,7 +23,7 @@ import java.util.Map;
@SuppressWarnings({"unused", "DuplicatedCode"}) @SuppressWarnings({"unused", "DuplicatedCode"})
public interface QueryLabel<Children> { public interface QueryLabel<Children> {
void addLabel(Label<?> label); void addLabel(Label<?> label, boolean isCollection);
Children getChildren(); Children getChildren();
@ -62,7 +62,7 @@ public interface QueryLabel<Children> {
} else { } else {
builder = new MybatisLabel.Builder<>(prefix, dtoFieldName, child, field.getType(), genericType, true); builder = new MybatisLabel.Builder<>(prefix, dtoFieldName, child, field.getType(), genericType, true);
} }
addLabel(builder.build()); addLabel(builder.build(), true);
return getChildren(); return getChildren();
} }
@ -104,7 +104,7 @@ public interface QueryLabel<Children> {
Class<?> genericType = MPJReflectionKit.getGenericType(field.getField()); Class<?> genericType = MPJReflectionKit.getGenericType(field.getField());
MybatisLabelFree.Builder<?> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), genericType); MybatisLabelFree.Builder<?> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), genericType);
MybatisLabelFree.Builder<?> czBuilder = collection.apply(builder); MybatisLabelFree.Builder<?> czBuilder = collection.apply(builder);
addLabel(czBuilder.build()); addLabel(czBuilder.build(), true);
return getChildren(); return getChildren();
} }
@ -118,7 +118,7 @@ public interface QueryLabel<Children> {
Class<?> genericType = MPJReflectionKit.getGenericType(field.getField()); Class<?> genericType = MPJReflectionKit.getGenericType(field.getField());
MybatisLabel.Builder<?, ?> builder = new MybatisLabel.Builder<>(prefix, dtoFieldName, child, field.getType(), genericType, false); MybatisLabel.Builder<?, ?> builder = new MybatisLabel.Builder<>(prefix, dtoFieldName, child, field.getType(), genericType, false);
MybatisLabel.Builder<?, ?> czBuilder = collection.apply(builder); MybatisLabel.Builder<?, ?> czBuilder = collection.apply(builder);
addLabel(czBuilder.build()); addLabel(czBuilder.build(), true);
return getChildren(); return getChildren();
} }
@ -139,7 +139,7 @@ public interface QueryLabel<Children> {
MybatisLabel.Builder<?, ?> builder; MybatisLabel.Builder<?, ?> builder;
builder = new MybatisLabel.Builder<>(StringUtils.isBlank(prefix) ? null : prefix, builder = new MybatisLabel.Builder<>(StringUtils.isBlank(prefix) ? null : prefix,
dtoFieldName, child, field.getType(), (Class<?>) field.getType(), true); dtoFieldName, child, field.getType(), (Class<?>) field.getType(), true);
addLabel(builder.build()); addLabel(builder.build(), false);
return getChildren(); return getChildren();
} }
@ -160,7 +160,7 @@ public interface QueryLabel<Children> {
Assert.isFalse(Collection.class.isAssignableFrom(field.getType()), "association 不支持集合类"); Assert.isFalse(Collection.class.isAssignableFrom(field.getType()), "association 不支持集合类");
MybatisLabelFree.Builder<?> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), (Class<?>) field.getType()); MybatisLabelFree.Builder<?> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), (Class<?>) field.getType());
MybatisLabelFree.Builder<?> cfBuilder = collection.apply(builder); MybatisLabelFree.Builder<?> cfBuilder = collection.apply(builder);
addLabel(cfBuilder.build()); addLabel(cfBuilder.build(), false);
return getChildren(); return getChildren();
} }
@ -172,7 +172,7 @@ public interface QueryLabel<Children> {
MybatisLabel.Builder<?, ?> builder = new MybatisLabel.Builder<>(StringUtils.isBlank(prefix) ? null : prefix, MybatisLabel.Builder<?, ?> builder = new MybatisLabel.Builder<>(StringUtils.isBlank(prefix) ? null : prefix,
dtoFieldName, child, field.getType(), (Class<?>) field.getType(), false); dtoFieldName, child, field.getType(), (Class<?>) field.getType(), false);
MybatisLabel.Builder<?, ?> cfBuilder = collection.apply(builder); MybatisLabel.Builder<?, ?> cfBuilder = collection.apply(builder);
addLabel(cfBuilder.build()); addLabel(cfBuilder.build(), false);
return getChildren(); return getChildren();
} }
} }

View File

@ -364,6 +364,11 @@ public class MPJQueryWrapper<T> extends AbstractWrapper<T, String, MPJQueryWrapp
} }
} }
@Override
public boolean isResultMapCollection() {
return false;
}
@Override @Override
public MPJQueryWrapper<T> setEntityClass(Class<T> entityClass) { public MPJQueryWrapper<T> setEntityClass(Class<T> entityClass) {
try { try {

View File

@ -48,10 +48,15 @@ public abstract class JoinAbstractLambdaWrapper<T, Children extends JoinAbstract
*/ */
protected String subTableAlias = ConfigProperties.tableAlias; protected String subTableAlias = ConfigProperties.tableAlias;
/** /**
* 是否构建是否存在一对多 * 是否存在对多
*/ */
@Getter @Getter
protected boolean resultMap = false; protected boolean resultMap = false;
/**
* 是否存在一对多
*/
@Getter
protected boolean resultMapCollection = false;
/** /**
* 表序号 * 表序号
*/ */
@ -469,6 +474,7 @@ public abstract class JoinAbstractLambdaWrapper<T, Children extends JoinAbstract
super.clear(); super.clear();
this.alias = ConfigProperties.tableAlias; this.alias = ConfigProperties.tableAlias;
this.resultMap = false; this.resultMap = false;
this.resultMapCollection = false;
this.tableIndex = 1; this.tableIndex = 1;
this.dynamicTableName = false; this.dynamicTableName = false;
this.tableFunc = null; this.tableFunc = null;

View File

@ -158,7 +158,10 @@ public class MPJLambdaWrapper<T> extends JoinAbstractLambdaWrapper<T, MPJLambdaW
} }
@Override @Override
public void addLabel(Label<?> label) { public void addLabel(Label<?> label, boolean isCollection) {
if (isCollection) {
this.resultMapCollection = true;
}
this.resultMap = true; this.resultMap = true;
this.resultMapMybatisLabel.add(label); this.resultMapMybatisLabel.add(label);
} }

View File

@ -56,6 +56,8 @@ public abstract class AptAbstractWrapper<T, Children extends AptAbstractWrapper<
*/ */
@Getter @Getter
protected boolean resultMap = false; protected boolean resultMap = false;
@Getter
protected boolean resultMapCollection = false;
/** /**
* 表序号 * 表序号
*/ */
@ -402,6 +404,7 @@ public abstract class AptAbstractWrapper<T, Children extends AptAbstractWrapper<
super.clear(); super.clear();
this.alias = ConfigProperties.tableAlias; this.alias = ConfigProperties.tableAlias;
this.resultMap = false; this.resultMap = false;
this.resultMapCollection = false;
this.tableIndex = 1; this.tableIndex = 1;
this.dynamicTableName = false; this.dynamicTableName = false;
this.tableFunc = null; this.tableFunc = null;

View File

@ -135,7 +135,10 @@ public class AptQueryWrapper<T> extends AptAbstractWrapper<T, AptQueryWrapper<T>
} }
@Override @Override
public void addLabel(Label<?> label) { public void addLabel(Label<?> label, boolean isCollection) {
if (isCollection) {
this.resultMapCollection = true;
}
this.resultMap = true; this.resultMap = true;
this.resultMapMybatisLabel.add(label); this.resultMapMybatisLabel.add(label);
} }

View File

@ -23,7 +23,7 @@ import java.util.Map;
@SuppressWarnings({"unchecked", "unused", "DuplicatedCode"}) @SuppressWarnings({"unchecked", "unused", "DuplicatedCode"})
public interface QueryLabel<Children> { public interface QueryLabel<Children> {
void addLabel(Label<?> label); void addLabel(Label<?> label, boolean isCollection);
Children getChildren(); Children getChildren();
@ -65,7 +65,7 @@ public interface QueryLabel<Children> {
Class<Z> ofType = (Class<Z>) genericType; Class<Z> ofType = (Class<Z>) genericType;
builder = new MybatisLabel.Builder<>(dtoFieldName, child, field.getType(), ofType, true); builder = new MybatisLabel.Builder<>(dtoFieldName, child, field.getType(), ofType, true);
} }
addLabel(builder.build()); addLabel(builder.build(), true);
return getChildren(); return getChildren();
} }
@ -108,7 +108,7 @@ public interface QueryLabel<Children> {
Class<Z> ofType = (Class<Z>) genericType; Class<Z> ofType = (Class<Z>) genericType;
MybatisLabel.Builder<C, Z> builder = new MybatisLabel.Builder<>(dtoFieldName, child, field.getType(), ofType, false); MybatisLabel.Builder<C, Z> builder = new MybatisLabel.Builder<>(dtoFieldName, child, field.getType(), ofType, false);
MybatisLabel.Builder<C, Z> czBuilder = collection.apply(builder); MybatisLabel.Builder<C, Z> czBuilder = collection.apply(builder);
addLabel(czBuilder.build()); addLabel(czBuilder.build(), true);
return getChildren(); return getChildren();
} }
@ -124,7 +124,7 @@ public interface QueryLabel<Children> {
Class<Z> ofType = (Class<Z>) genericType; Class<Z> ofType = (Class<Z>) genericType;
MybatisLabelFree.Builder<Z> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), ofType); MybatisLabelFree.Builder<Z> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), ofType);
MybatisLabelFree.Builder<Z> czBuilder = collection.apply(builder); MybatisLabelFree.Builder<Z> czBuilder = collection.apply(builder);
addLabel(czBuilder.build()); addLabel(czBuilder.build(), true);
return getChildren(); return getChildren();
} }
@ -142,7 +142,7 @@ public interface QueryLabel<Children> {
Assert.isFalse(Collection.class.isAssignableFrom(field.getType()), "association 不支持集合类"); Assert.isFalse(Collection.class.isAssignableFrom(field.getType()), "association 不支持集合类");
MybatisLabel.Builder<C, F> builder; MybatisLabel.Builder<C, F> builder;
builder = new MybatisLabel.Builder<>(dtoFieldName, child, field.getType(), (Class<F>) field.getType(), true); builder = new MybatisLabel.Builder<>(dtoFieldName, child, field.getType(), (Class<F>) field.getType(), true);
addLabel(builder.build()); addLabel(builder.build(), false);
return getChildren(); return getChildren();
} }
@ -154,7 +154,7 @@ public interface QueryLabel<Children> {
Assert.isFalse(Collection.class.isAssignableFrom(field.getType()), "association 不支持集合类"); Assert.isFalse(Collection.class.isAssignableFrom(field.getType()), "association 不支持集合类");
MybatisLabelFree.Builder<F> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), (Class<F>) field.getType()); MybatisLabelFree.Builder<F> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), (Class<F>) field.getType());
MybatisLabelFree.Builder<F> cfBuilder = collection.apply(builder); MybatisLabelFree.Builder<F> cfBuilder = collection.apply(builder);
addLabel(cfBuilder.build()); addLabel(cfBuilder.build(), false);
return getChildren(); return getChildren();
} }
@ -166,7 +166,7 @@ public interface QueryLabel<Children> {
Assert.isFalse(Collection.class.isAssignableFrom(field.getType()), "association 不支持集合类"); Assert.isFalse(Collection.class.isAssignableFrom(field.getType()), "association 不支持集合类");
MybatisLabel.Builder<C, F> builder = new MybatisLabel.Builder<>(dtoFieldName, child, field.getType(), (Class<F>) field.getType(), false); MybatisLabel.Builder<C, F> builder = new MybatisLabel.Builder<>(dtoFieldName, child, field.getType(), (Class<F>) field.getType(), false);
MybatisLabel.Builder<C, F> cfBuilder = collection.apply(builder); MybatisLabel.Builder<C, F> cfBuilder = collection.apply(builder);
addLabel(cfBuilder.build()); addLabel(cfBuilder.build(), false);
return getChildren(); return getChildren();
} }
} }

View File

@ -2,6 +2,7 @@ package com.github.yulichang.wrapper.interfaces;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.interfaces.MPJBaseJoin; import com.github.yulichang.interfaces.MPJBaseJoin;
import com.github.yulichang.toolkit.SqlHelper; import com.github.yulichang.toolkit.SqlHelper;
@ -21,8 +22,12 @@ import java.util.Optional;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public interface Chain<T> extends MPJBaseJoin<T> { public interface Chain<T> extends MPJBaseJoin<T> {
Page<?> FIRST_PAGE = new Page<>(1, 1).setSearchCount(false);
Class<T> getEntityClass(); Class<T> getEntityClass();
boolean isResultMapCollection();
/** /**
* 链式调用 等效于MP mapper的 selectCount() * 链式调用 等效于MP mapper的 selectCount()
* <p> * <p>
@ -63,8 +68,10 @@ public interface Chain<T> extends MPJBaseJoin<T> {
* new MPJLambdaWrapper(User.class)<br /> * new MPJLambdaWrapper(User.class)<br />
* JoinWrappers.lambda(User.class)<br /> * JoinWrappers.lambda(User.class)<br />
*/ */
@SuppressWarnings("unchecked")
default T first() { default T first() {
return Optional.of(list()).filter(CollectionUtils::isNotEmpty).map(m -> m.get(0)).orElse(null); List<T> list = this.isResultMapCollection() ? list() : page((Page<T>) FIRST_PAGE).getRecords();
return Optional.of(list).filter(CollectionUtils::isNotEmpty).map(m -> m.get(0)).orElse(null);
} }
/** /**
@ -74,8 +81,10 @@ public interface Chain<T> extends MPJBaseJoin<T> {
* new MPJLambdaWrapper(User.class)<br /> * new MPJLambdaWrapper(User.class)<br />
* JoinWrappers.lambda(User.class)<br /> * JoinWrappers.lambda(User.class)<br />
*/ */
@SuppressWarnings("unchecked")
default <R> R first(Class<R> resultType) { default <R> R first(Class<R> resultType) {
return Optional.of(list(resultType)).filter(CollectionUtils::isNotEmpty).map(m -> m.get(0)).orElse(null); List<R> list = this.isResultMapCollection() ? list(resultType) : page((Page<R>) FIRST_PAGE, resultType).getRecords();
return Optional.of(list).filter(CollectionUtils::isNotEmpty).map(m -> m.get(0)).orElse(null);
} }
/** /**

View File

@ -22,7 +22,7 @@ import java.util.Map;
@SuppressWarnings({"unchecked", "unused", "DuplicatedCode"}) @SuppressWarnings({"unchecked", "unused", "DuplicatedCode"})
public interface QueryLabel<Children> { public interface QueryLabel<Children> {
void addLabel(Label<?> label); void addLabel(Label<?> label, boolean isCollection);
Children getChildren(); Children getChildren();
@ -67,7 +67,7 @@ public interface QueryLabel<Children> {
Class<Z> ofType = (Class<Z>) genericType; Class<Z> ofType = (Class<Z>) genericType;
builder = new MybatisLabel.Builder<>(prefix, dtoFieldName, child, field.getType(), ofType, true); builder = new MybatisLabel.Builder<>(prefix, dtoFieldName, child, field.getType(), ofType, true);
} }
addLabel(builder.build()); addLabel(builder.build(), true);
return getChildren(); return getChildren();
} }
@ -116,7 +116,7 @@ public interface QueryLabel<Children> {
Class<Z> ofType = (Class<Z>) genericType; Class<Z> ofType = (Class<Z>) genericType;
MybatisLabelFree.Builder<Z> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), ofType); MybatisLabelFree.Builder<Z> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), ofType);
MybatisLabelFree.Builder<Z> czBuilder = collection.apply(builder); MybatisLabelFree.Builder<Z> czBuilder = collection.apply(builder);
addLabel(czBuilder.build()); addLabel(czBuilder.build(), true);
return getChildren(); return getChildren();
} }
@ -132,7 +132,7 @@ public interface QueryLabel<Children> {
Class<Z> ofType = (Class<Z>) genericType; Class<Z> ofType = (Class<Z>) genericType;
MybatisLabel.Builder<C, Z> builder = new MybatisLabel.Builder<>(prefix, dtoFieldName, child, field.getType(), ofType, false); MybatisLabel.Builder<C, Z> builder = new MybatisLabel.Builder<>(prefix, dtoFieldName, child, field.getType(), ofType, false);
MybatisLabel.Builder<C, Z> czBuilder = collection.apply(builder); MybatisLabel.Builder<C, Z> czBuilder = collection.apply(builder);
addLabel(czBuilder.build()); addLabel(czBuilder.build(), true);
return getChildren(); return getChildren();
} }
@ -154,7 +154,7 @@ public interface QueryLabel<Children> {
MybatisLabel.Builder<C, F> builder; MybatisLabel.Builder<C, F> builder;
builder = new MybatisLabel.Builder<>(StringUtils.isBlank(prefix) ? null : prefix, builder = new MybatisLabel.Builder<>(StringUtils.isBlank(prefix) ? null : prefix,
dtoFieldName, child, field.getType(), (Class<F>) field.getType(), true); dtoFieldName, child, field.getType(), (Class<F>) field.getType(), true);
addLabel(builder.build()); addLabel(builder.build(), false);
return getChildren(); return getChildren();
} }
@ -176,7 +176,7 @@ public interface QueryLabel<Children> {
Assert.isFalse(Collection.class.isAssignableFrom(field.getType()), "association 不支持集合类"); Assert.isFalse(Collection.class.isAssignableFrom(field.getType()), "association 不支持集合类");
MybatisLabelFree.Builder<F> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), (Class<F>) field.getType()); MybatisLabelFree.Builder<F> builder = new MybatisLabelFree.Builder<>(dtoFieldName, field.getType(), (Class<F>) field.getType());
MybatisLabelFree.Builder<F> cfBuilder = collection.apply(builder); MybatisLabelFree.Builder<F> cfBuilder = collection.apply(builder);
addLabel(cfBuilder.build()); addLabel(cfBuilder.build(), false);
return getChildren(); return getChildren();
} }
@ -189,7 +189,7 @@ public interface QueryLabel<Children> {
MybatisLabel.Builder<C, F> builder = new MybatisLabel.Builder<>(StringUtils.isBlank(prefix) ? null : prefix, MybatisLabel.Builder<C, F> builder = new MybatisLabel.Builder<>(StringUtils.isBlank(prefix) ? null : prefix,
dtoFieldName, child, field.getType(), (Class<F>) field.getType(), false); dtoFieldName, child, field.getType(), (Class<F>) field.getType(), false);
MybatisLabel.Builder<C, F> cfBuilder = collection.apply(builder); MybatisLabel.Builder<C, F> cfBuilder = collection.apply(builder);
addLabel(cfBuilder.build()); addLabel(cfBuilder.build(), false);
return getChildren(); return getChildren();
} }
} }

View File

@ -33,15 +33,6 @@
<url>https://github.com/yulichang/mybatis-plus-join</url> <url>https://github.com/yulichang/mybatis-plus-join</url>
</scm> </scm>
<properties>
<jdkVersion>1.8</jdkVersion>
<jdkVersion.test>1.8</jdkVersion.test>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<github.global.server>github</github.global.server>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.github.yulichang</groupId> <groupId>com.github.yulichang</groupId>

View File

@ -12,10 +12,4 @@
<name>test-base</name> <name>test-base</name>
<description>test-base</description> <description>test-base</description>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project> </project>

View File

@ -12,12 +12,6 @@
<artifactId>test-collection</artifactId> <artifactId>test-collection</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.github.yulichang</groupId> <groupId>com.github.yulichang</groupId>

View File

@ -12,12 +12,6 @@
<artifactId>test-join</artifactId> <artifactId>test-join</artifactId>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.github.yulichang</groupId> <groupId>com.github.yulichang</groupId>

View File

@ -0,0 +1,46 @@
package com.github.yulichang.test.join.unit;
import com.github.yulichang.test.join.entity.UserDO;
import com.github.yulichang.test.util.Reset;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.github.yulichang.wrapper.UpdateJoinWrapper;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class ChainFirstTest {
@BeforeEach
void setUp() {
Reset.reset();
}
@Test
void chainFirst() {
MPJLambdaWrapper<UserDO> wrapper = JoinWrappers.lambda(UserDO.class)
.select(UserDO::getName);
String first = wrapper.first(String.class);
System.out.println(first);
}
@Test
void chainFirst1() {
UpdateJoinWrapper<UserDO> update = JoinWrappers.update(UserDO.class)
.set(UserDO::getName, null);
update.update();
MPJLambdaWrapper<UserDO> wrapper = JoinWrappers.lambda(UserDO.class)
.select(UserDO::getName);
String first = wrapper.first(String.class);
System.out.println(first);
}
}

View File

@ -12,12 +12,6 @@
<artifactId>test-mapping</artifactId> <artifactId>test-mapping</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.github.yulichang</groupId> <groupId>com.github.yulichang</groupId>

View File

@ -14,12 +14,6 @@
<version>${revision}</version> <version>${revision}</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.github.yulichang</groupId> <groupId>com.github.yulichang</groupId>

View File

@ -14,9 +14,6 @@
<properties> <properties>
<solon.varrsion>2.8.0</solon.varrsion> <solon.varrsion>2.8.0</solon.varrsion>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<dependencies> <dependencies>