From fd49a1fafc620964eaf4c74a32e52be59a183d13 Mon Sep 17 00:00:00 2001
From: admin <570810310@qq.com>
Date: Mon, 22 Feb 2021 11:52:12 +0800
Subject: [PATCH] 1.0.9
---
.../yulichang/common/JoinLambdaWrapper.java | 9 +-
.../query/MPJAbstractLambdaWrapper.java | 86 -------------------
.../query/MPJLambdaQueryWrapper.java | 8 +-
3 files changed, 9 insertions(+), 94 deletions(-)
delete mode 100644 src/main/java/com/github/yulichang/query/MPJAbstractLambdaWrapper.java
diff --git a/src/main/java/com/github/yulichang/common/JoinLambdaWrapper.java b/src/main/java/com/github/yulichang/common/JoinLambdaWrapper.java
index 859f359..37bc421 100644
--- a/src/main/java/com/github/yulichang/common/JoinLambdaWrapper.java
+++ b/src/main/java/com/github/yulichang/common/JoinLambdaWrapper.java
@@ -98,7 +98,7 @@ public class JoinLambdaWrapper extends JoinAbstractLambdaWrapper entityClass, SharedString sqlSelect, AtomicInteger paramNameSeq,
+ JoinLambdaWrapper(T entity, Class entityClass, AtomicInteger paramNameSeq,
Map paramNameValuePairs, MergeSegments mergeSegments,
SharedString lastSql, SharedString sqlComment, SharedString sqlFirst) {
super.setEntity(entity);
@@ -112,14 +112,9 @@ public class JoinLambdaWrapper extends JoinAbstractLambdaWrapper故 sqlSelect 不向下传递
- */
@Override
protected JoinLambdaWrapper instance() {
- return new JoinLambdaWrapper<>(getEntity(), getEntityClass(), null, paramNameSeq, paramNameValuePairs,
+ return new JoinLambdaWrapper<>(getEntity(), getEntityClass(), paramNameSeq, paramNameValuePairs,
new MergeSegments(), SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString());
}
diff --git a/src/main/java/com/github/yulichang/query/MPJAbstractLambdaWrapper.java b/src/main/java/com/github/yulichang/query/MPJAbstractLambdaWrapper.java
deleted file mode 100644
index 72e2463..0000000
--- a/src/main/java/com/github/yulichang/query/MPJAbstractLambdaWrapper.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.github.yulichang.query;
-
-import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Assert;
-import com.baomidou.mybatisplus.core.toolkit.LambdaUtils;
-import com.baomidou.mybatisplus.core.toolkit.StringPool;
-import com.baomidou.mybatisplus.core.toolkit.support.ColumnCache;
-import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
-import com.baomidou.mybatisplus.core.toolkit.support.SerializedLambda;
-import com.github.yulichang.toolkit.Constant;
-import org.apache.ibatis.reflection.property.PropertyNamer;
-
-import java.util.Arrays;
-import java.util.Map;
-
-import static java.util.stream.Collectors.joining;
-
-/**
- * copy {@link com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper}
- */
-@SuppressWarnings("serial")
-public abstract class MPJAbstractLambdaWrapper>
- extends AbstractWrapper, Children> {
-
- private Map columnMap = null;
- private boolean initColumnMap = false;
-
- @SuppressWarnings("unchecked")
- @Override
- protected String columnsToString(SFunction... columns) {
- return columnsToString(true, columns);
- }
-
- @SuppressWarnings("unchecked")
- protected String columnsToString(boolean onlyColumn, SFunction... columns) {
- return Arrays.stream(columns).map(i -> columnToString(i, onlyColumn)).collect(joining(StringPool.COMMA));
- }
-
- @Override
- protected String columnToString(SFunction column) {
- return columnToString(column, true);
- }
-
- protected String columnToString(SFunction column, boolean onlyColumn) {
- return Constant.TABLE_ALIAS + StringPool.DOT + getColumn(LambdaUtils.resolve(column), onlyColumn);
- }
-
- /**
- * 获取 SerializedLambda 对应的列信息,从 lambda 表达式中推测实体类
- *
- * 如果获取不到列信息,那么本次条件组装将会失败
- *
- * @param lambda lambda 表达式
- * @param onlyColumn 如果是,结果: "name", 如果否: "name" as "name"
- * @return 列
- * @throws com.baomidou.mybatisplus.core.exceptions.MybatisPlusException 获取不到列信息时抛出异常
- * @see SerializedLambda#getImplClass()
- * @see SerializedLambda#getImplMethodName()
- */
- private String getColumn(SerializedLambda lambda, boolean onlyColumn) {
- Class> aClass = lambda.getInstantiatedType();
- tryInitCache(aClass);
- String fieldName = PropertyNamer.methodToProperty(lambda.getImplMethodName());
- ColumnCache columnCache = getColumnCache(fieldName, aClass);
- return onlyColumn ? columnCache.getColumn() : columnCache.getColumnSelect();
- }
-
- private void tryInitCache(Class> lambdaClass) {
- if (!initColumnMap) {
- final Class entityClass = getEntityClass();
- if (entityClass != null) {
- lambdaClass = entityClass;
- }
- columnMap = LambdaUtils.getColumnMap(lambdaClass);
- initColumnMap = true;
- }
- Assert.notNull(columnMap, "can not find lambda cache for this entity [%s]", lambdaClass.getName());
- }
-
- private ColumnCache getColumnCache(String fieldName, Class> lambdaClass) {
- ColumnCache columnCache = columnMap.get(LambdaUtils.formatKey(fieldName));
- Assert.notNull(columnCache, "can not find lambda cache for this property [%s] of entity [%s]",
- fieldName, lambdaClass.getName());
- return columnCache;
- }
-}
diff --git a/src/main/java/com/github/yulichang/query/MPJLambdaQueryWrapper.java b/src/main/java/com/github/yulichang/query/MPJLambdaQueryWrapper.java
index c4da7ac..e89193a 100644
--- a/src/main/java/com/github/yulichang/query/MPJLambdaQueryWrapper.java
+++ b/src/main/java/com/github/yulichang/query/MPJLambdaQueryWrapper.java
@@ -1,5 +1,6 @@
package com.github.yulichang.query;
+import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
import com.baomidou.mybatisplus.core.conditions.SharedString;
import com.baomidou.mybatisplus.core.conditions.query.Query;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
@@ -28,7 +29,7 @@ import java.util.stream.Collectors;
* sqlSelect 由覆盖改为追加
*/
@SuppressWarnings("all")
-public class MPJLambdaQueryWrapper extends MPJAbstractLambdaWrapper>
+public class MPJLambdaQueryWrapper extends AbstractLambdaWrapper>
implements Query, T, SFunction>, MPJJoin> {
/**
@@ -112,6 +113,11 @@ public class MPJLambdaQueryWrapper extends MPJAbstractLambdaWrapper column, boolean onlyColumn) {
+ return Constant.TABLE_ALIAS + StringPool.DOT + super.columnToString(column, onlyColumn);
+ }
+
@SafeVarargs
public final MPJLambdaQueryWrapper select(String... columns) {
return select(true, columns);