mirror of
https://gitee.com/best_handsome/mybatis-plus-join
synced 2025-07-11 00:02:22 +08:00
first 添加分页
This commit is contained in:
parent
17936814b0
commit
ad4df5b939
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user