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);