From 36c68df5ff8ee3d0cb3b20d322888cded3a91bb7 Mon Sep 17 00:00:00 2001 From: redkale Date: Fri, 17 Nov 2023 20:54:18 +0800 Subject: [PATCH] =?UTF-8?q?ColumnNodeValue=E6=9B=B4=E5=90=8D=E4=B8=BAColum?= =?UTF-8?q?nExpNode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../redkale/source/AbstractDataSource.java | 2 +- .../redkale/source/AbstractDataSqlSource.java | 2 +- ...olumnNodeValue.java => ColumnExpNode.java} | 76 +++++++++---------- .../org/redkale/source/ColumnFuncNode.java | 8 +- .../java/org/redkale/source/ColumnNode.java | 2 +- .../java/org/redkale/source/ColumnValue.java | 23 +++--- .../java/org/redkale/source/DataSource.java | 24 +++--- .../java/org/redkale/source/EntityCache.java | 24 +++--- .../java/org/redkale/source/EntityInfo.java | 20 ++--- 9 files changed, 89 insertions(+), 92 deletions(-) rename src/main/java/org/redkale/source/{ColumnNodeValue.java => ColumnExpNode.java} (51%) diff --git a/src/main/java/org/redkale/source/AbstractDataSource.java b/src/main/java/org/redkale/source/AbstractDataSource.java index 7b187e39e..f58891d16 100644 --- a/src/main/java/org/redkale/source/AbstractDataSource.java +++ b/src/main/java/org/redkale/source/AbstractDataSource.java @@ -365,7 +365,7 @@ public abstract class AbstractDataSource extends AbstractService implements Data * * @return Predicate */ - protected Predicate createPredicate(FilterNode node, EntityCache cache) { + protected Predicate createPredicate(FilterNode node, EntityCache cache) { return node.createPredicate(cache); } diff --git a/src/main/java/org/redkale/source/AbstractDataSqlSource.java b/src/main/java/org/redkale/source/AbstractDataSqlSource.java index 65264000a..f7eaae01b 100644 --- a/src/main/java/org/redkale/source/AbstractDataSqlSource.java +++ b/src/main/java/org/redkale/source/AbstractDataSqlSource.java @@ -2458,7 +2458,7 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource implement if (funcNodes[i] instanceof ColumnFuncNode) { funcSqlColumns.append(info.formatSQLValue((Attribute) null, "a", (ColumnFuncNode) funcNodes[i], sqlFormatter)); } else { - funcSqlColumns.append(info.formatSQLValue((Attribute) null, "a", (ColumnNodeValue) funcNodes[i], sqlFormatter)); + funcSqlColumns.append(info.formatSQLValue((Attribute) null, "a", (ColumnExpNode) funcNodes[i], sqlFormatter)); } } final Map joinTabalis = node == null ? null : node.getJoinTabalis(); diff --git a/src/main/java/org/redkale/source/ColumnNodeValue.java b/src/main/java/org/redkale/source/ColumnExpNode.java similarity index 51% rename from src/main/java/org/redkale/source/ColumnNodeValue.java rename to src/main/java/org/redkale/source/ColumnExpNode.java index 4fc27df9c..e70d23b3c 100644 --- a/src/main/java/org/redkale/source/ColumnNodeValue.java +++ b/src/main/java/org/redkale/source/ColumnExpNode.java @@ -13,9 +13,9 @@ import static org.redkale.source.ColumnExpress.*; * String 视为 字段名
* Number 视为 数值
* 例如: UPDATE Reord SET updateTime = createTime + 10 WHERE id = 1
- * source.updateColumn(Record.class, 1, ColumnValue.mov("updateTime", ColumnNodeValue.inc("createTime", 10)));
+ source.updateColumn(Record.class, 1, ColumnValue.mov("updateTime", ColumnExpNode.inc("createTime", 10)));
* 例如: UPDATE Reord SET updateTime = createTime * 10 / createCount WHERE id = 1
- * source.updateColumn(Record.class, 1, ColumnValue.mov("updateTime", ColumnNodeValue.div(ColumnNodeValue.mul("createTime", 10), "createCount")));
+ source.updateColumn(Record.class, 1, ColumnValue.mov("updateTime", ColumnExpNode.div(ColumnExpNode.mul("createTime", 10), "createCount")));
* *

* 详情见: https://redkale.org @@ -23,18 +23,18 @@ import static org.redkale.source.ColumnExpress.*; * @author zhangjx * @since 2.0.0 */ -public class ColumnNodeValue implements ColumnNode { +public class ColumnExpNode implements ColumnNode { - protected Serializable left;//类型只能是String、Number、ColumnNodeValue + protected Serializable left;//类型只能是String、Number、ColumnExpNode protected ColumnExpress express; //MOV时,left必须是String, right必须是null - protected Serializable right;//类型只能是String、Number、ColumnNodeValue + protected Serializable right;//类型只能是String、Number、ColumnExpNode - public ColumnNodeValue() { + public ColumnExpNode() { } - public ColumnNodeValue(Serializable left, ColumnExpress express, Serializable right) { + public ColumnExpNode(Serializable left, ColumnExpress express, Serializable right) { if (express == null) { throw new IllegalArgumentException("express cannot be null"); } @@ -43,11 +43,11 @@ public class ColumnNodeValue implements ColumnNode { throw new IllegalArgumentException("left value must be String, right value must be null on ColumnExpress.MOV"); } } else { - if (!(left instanceof String) && !(left instanceof Number) && !(left instanceof ColumnNodeValue) && !(left instanceof ColumnFuncNode)) { - throw new IllegalArgumentException("left value must be String, Number, ColumnFuncNode or ColumnNodeValue"); + if (!(left instanceof String) && !(left instanceof Number) && !(left instanceof ColumnExpNode) && !(left instanceof ColumnFuncNode)) { + throw new IllegalArgumentException("left value must be String, Number, ColumnFuncNode or ColumnExpNode"); } - if (!(right instanceof String) && !(right instanceof Number) && !(right instanceof ColumnNodeValue) && !(right instanceof ColumnFuncNode)) { - throw new IllegalArgumentException("right value must be String, Number, ColumnFuncNode or ColumnNodeValue"); + if (!(right instanceof String) && !(right instanceof Number) && !(right instanceof ColumnExpNode) && !(right instanceof ColumnFuncNode)) { + throw new IllegalArgumentException("right value must be String, Number, ColumnFuncNode or ColumnExpNode"); } } this.left = left; @@ -55,72 +55,72 @@ public class ColumnNodeValue implements ColumnNode { this.right = right; } - public static ColumnNodeValue create(Serializable left, ColumnExpress express, Serializable right) { - return new ColumnNodeValue(left, express, right); + public static ColumnExpNode create(Serializable left, ColumnExpress express, Serializable right) { + return new ColumnExpNode(left, express, right); } - public static ColumnNodeValue mov(String left) { - return new ColumnNodeValue(left, MOV, null); + public static ColumnExpNode mov(String left) { + return new ColumnExpNode(left, MOV, null); } - public static ColumnNodeValue inc(Serializable left, Serializable right) { - return new ColumnNodeValue(left, INC, right); + public static ColumnExpNode inc(Serializable left, Serializable right) { + return new ColumnExpNode(left, INC, right); } - public static ColumnNodeValue dec(Serializable left, Serializable right) { - return new ColumnNodeValue(left, DEC, right); + public static ColumnExpNode dec(Serializable left, Serializable right) { + return new ColumnExpNode(left, DEC, right); } - public static ColumnNodeValue mul(Serializable left, Serializable right) { - return new ColumnNodeValue(left, MUL, right); + public static ColumnExpNode mul(Serializable left, Serializable right) { + return new ColumnExpNode(left, MUL, right); } - public static ColumnNodeValue div(Serializable left, Serializable right) { - return new ColumnNodeValue(left, DIV, right); + public static ColumnExpNode div(Serializable left, Serializable right) { + return new ColumnExpNode(left, DIV, right); } - public static ColumnNodeValue mod(Serializable left, Serializable right) { - return new ColumnNodeValue(left, MOD, right); + public static ColumnExpNode mod(Serializable left, Serializable right) { + return new ColumnExpNode(left, MOD, right); } - public static ColumnNodeValue and(Serializable left, Serializable right) { - return new ColumnNodeValue(left, AND, right); + public static ColumnExpNode and(Serializable left, Serializable right) { + return new ColumnExpNode(left, AND, right); } - public static ColumnNodeValue orr(Serializable left, Serializable right) { - return new ColumnNodeValue(left, ORR, right); + public static ColumnExpNode orr(Serializable left, Serializable right) { + return new ColumnExpNode(left, ORR, right); } - public ColumnNodeValue inc(Serializable right) { + public ColumnExpNode inc(Serializable right) { return any(INC, right); } - public ColumnNodeValue dec(Serializable right) { + public ColumnExpNode dec(Serializable right) { return any(DEC, right); } - public ColumnNodeValue mul(Serializable right) { + public ColumnExpNode mul(Serializable right) { return any(MUL, right); } - public ColumnNodeValue div(Serializable right) { + public ColumnExpNode div(Serializable right) { return any(DIV, right); } - public ColumnNodeValue mod(Serializable right) { + public ColumnExpNode mod(Serializable right) { return any(MOD, right); } - public ColumnNodeValue and(Serializable right) { + public ColumnExpNode and(Serializable right) { return any(AND, right); } - public ColumnNodeValue orr(Serializable right) { + public ColumnExpNode orr(Serializable right) { return any(ORR, right); } - protected ColumnNodeValue any(ColumnExpress express, Serializable right) { - ColumnNodeValue one = new ColumnNodeValue(this.left, this.express, this.right); + protected ColumnExpNode any(ColumnExpress express, Serializable right) { + ColumnExpNode one = new ColumnExpNode(this.left, this.express, this.right); this.left = one; this.express = express; this.right = right; diff --git a/src/main/java/org/redkale/source/ColumnFuncNode.java b/src/main/java/org/redkale/source/ColumnFuncNode.java index 41a1383f2..402662813 100644 --- a/src/main/java/org/redkale/source/ColumnFuncNode.java +++ b/src/main/java/org/redkale/source/ColumnFuncNode.java @@ -8,7 +8,7 @@ package org.redkale.source; import java.io.Serializable; /** - * 与ColumnNodeValue 组合,用于复杂的字段表达式 。 + * 与ColumnExpNode 组合,用于复杂的字段表达式 。 * String 视为 字段名 * *

@@ -21,14 +21,14 @@ public class ColumnFuncNode implements ColumnNode { protected FilterFunc func; - protected Serializable value;//类型只能是String、ColumnNodeValue + protected Serializable value;//类型只能是String、ColumnExpNode public ColumnFuncNode() { } public ColumnFuncNode(FilterFunc func, Serializable node) { - if (!(node instanceof String) && !(node instanceof ColumnNodeValue)) { - throw new IllegalArgumentException("value must be String or ColumnNodeValue"); + if (!(node instanceof String) && !(node instanceof ColumnExpNode)) { + throw new IllegalArgumentException("value must be String or ColumnExpNode"); } this.func = func; this.value = node; diff --git a/src/main/java/org/redkale/source/ColumnNode.java b/src/main/java/org/redkale/source/ColumnNode.java index e73e69015..73cfd847c 100644 --- a/src/main/java/org/redkale/source/ColumnNode.java +++ b/src/main/java/org/redkale/source/ColumnNode.java @@ -8,7 +8,7 @@ package org.redkale.source; import java.io.Serializable; /** - * ColumnFuncNode与ColumnNodeValue 的接口 + * ColumnFuncNode与ColumnExpNode 的接口 * *

* 详情见: https://redkale.org diff --git a/src/main/java/org/redkale/source/ColumnValue.java b/src/main/java/org/redkale/source/ColumnValue.java index 769f4a356..c425646e8 100644 --- a/src/main/java/org/redkale/source/ColumnValue.java +++ b/src/main/java/org/redkale/source/ColumnValue.java @@ -13,7 +13,7 @@ import org.redkale.util.*; /** * ColumnValue主要用于多个字段更新的表达式。 - * value值一般为: ColumnNodeValue、ColumnFuncNode、Number、String等
+ * value值一般为: ColumnExpNode、ColumnFuncNode、Number、String等
* 用于 DataSource.updateColumn 方法
* *

@@ -35,7 +35,7 @@ public class ColumnValue { public ColumnValue() { } - public ColumnValue(LambdaSupplier func) { + private ColumnValue(LambdaSupplier func) { this(LambdaSupplier.readColumn(func), ColumnExpress.MOV, func.get()); } @@ -43,22 +43,19 @@ public class ColumnValue { this(LambdaSupplier.readColumn(func), express, func.get()); } - public ColumnValue(LambdaFunction func, Serializable value) { - this(LambdaFunction.readColumn(func), ColumnExpress.MOV, value); - } - public ColumnValue(LambdaFunction func, ColumnExpress express, Serializable value) { this(LambdaFunction.readColumn(func), express, value); } - public ColumnValue(String column, Serializable value) { + private ColumnValue(String column, Serializable value) { this(column, ColumnExpress.MOV, value); } public ColumnValue(String column, ColumnExpress express, Serializable value) { Objects.requireNonNull(column); + Objects.requireNonNull(express); this.column = column; - this.express = express == null ? ColumnExpress.MOV : express; + this.express = express; this.value = value; } @@ -94,7 +91,7 @@ public class ColumnValue { * * @return ColumnValue */ - public static ColumnValue inc(String column, Serializable value) { + public static ColumnValue inc(String column, Number value) { return new ColumnValue(column, INC, value); } @@ -119,7 +116,7 @@ public class ColumnValue { * * @return ColumnValue */ - public static ColumnValue dec(String column, Serializable value) { + public static ColumnValue dec(String column, Number value) { return new ColumnValue(column, DEC, value); } @@ -144,7 +141,7 @@ public class ColumnValue { * * @return ColumnValue */ - public static ColumnValue mul(String column, Serializable value) { + public static ColumnValue mul(String column, Number value) { return new ColumnValue(column, MUL, value); } @@ -156,7 +153,7 @@ public class ColumnValue { * * @return ColumnValue */ - public static ColumnValue div(String column, Serializable value) { + public static ColumnValue div(String column, Number value) { return new ColumnValue(column, DIV, value); } @@ -321,7 +318,7 @@ public class ColumnValue { * @since 2.8.0 */ public static ColumnValue create(LambdaFunction func, Serializable value) { - return new ColumnValue(func, value); + return new ColumnValue(func, MOV, value); } /** diff --git a/src/main/java/org/redkale/source/DataSource.java b/src/main/java/org/redkale/source/DataSource.java index fdc0d2a8c..e955795a2 100644 --- a/src/main/java/org/redkale/source/DataSource.java +++ b/src/main/java/org/redkale/source/DataSource.java @@ -1358,7 +1358,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE GROUP BY {col1}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), "targetid") + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), "targetid") * 等价于: SELECT targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY targetid
* * @param Entity泛型 @@ -1377,7 +1377,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} GROUP BY {col1}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), "targetid") + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), "targetid") * 等价于: SELECT targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY targetid
* * @param Entity泛型 @@ -1396,7 +1396,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter bean} GROUP BY {col1}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), "targetid", (FilterBean)null) + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), "targetid", (FilterBean)null) * 等价于: SELECT targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY targetid
* * @param Entity泛型 @@ -1416,7 +1416,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter bean} GROUP BY {col1}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), "targetid", (FilterBean)null) + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), "targetid", (FilterBean)null) * 等价于: SELECT targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY targetid
* * @param Entity泛型 @@ -1436,7 +1436,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter node} GROUP BY {col1}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), "targetid", (FilterNode)null) + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), "targetid", (FilterNode)null) * 等价于: SELECT targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY targetid
* * @param Entity泛型 @@ -1454,7 +1454,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter node} GROUP BY {col1}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), "targetid", (FilterNode)null) + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), "targetid", (FilterNode)null) * 等价于: SELECT targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY targetid
* * @param Entity泛型 @@ -1472,7 +1472,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} GROUP BY {col1}, {col2}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), Utility.ofArray("fromid", "targetid")) + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), Utility.ofArray("fromid", "targetid")) * 等价于: SELECT fromid, targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY fromid, targetid
* * @param Entity泛型 @@ -1491,7 +1491,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} GROUP BY {col1}, {col2}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), Utility.ofArray("fromid", "targetid")) + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), Utility.ofArray("fromid", "targetid")) * 等价于: SELECT fromid, targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY fromid, targetid
* * @param Entity泛型 @@ -1510,7 +1510,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter bean} GROUP BY {col1}, {col2}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), Utility.ofArray("fromid", "targetid"), (FilterBean)null) + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), Utility.ofArray("fromid", "targetid"), (FilterBean)null) * 等价于: SELECT fromid, targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY fromid, targetid
* * @param Entity泛型 @@ -1530,7 +1530,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter bean} GROUP BY {col1}, {col2}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), Utility.ofArray("fromid", "targetid"), (FilterBean)null) + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), Utility.ofArray("fromid", "targetid"), (FilterBean)null) * 等价于: SELECT fromid, targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY fromid, targetid
* * @param Entity泛型 @@ -1550,7 +1550,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter node} GROUP BY {col1}, {col2}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), Utility.ofArray("fromid", "targetid"), (FilterNode)null) + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), Utility.ofArray("fromid", "targetid"), (FilterNode)null) * 等价于: SELECT fromid, targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY fromid, targetid
* * @param Entity泛型 @@ -1568,7 +1568,7 @@ public interface DataSource extends Resourcable { /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter node} GROUP BY {col1}, {col2}
- * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnNodeValue.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnNodeValue.dec("money", 20)))), Utility.ofArray("fromid", "targetid"), (FilterNode)null) + * 如 queryColumnMapAsync(OrderRecord.class, Utility.ofArray(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.dec("money", 20)))), Utility.ofArray("fromid", "targetid"), (FilterNode)null) * 等价于: SELECT fromid, targetid, SUM(money) / 100, AVG(money - 20) FROM orderrecord GROUP BY fromid, targetid
* * @param Entity泛型 diff --git a/src/main/java/org/redkale/source/EntityCache.java b/src/main/java/org/redkale/source/EntityCache.java index 0b1b79034..065baf603 100644 --- a/src/main/java/org/redkale/source/EntityCache.java +++ b/src/main/java/org/redkale/source/EntityCache.java @@ -537,8 +537,8 @@ public final class EntityCache { private Number queryColumnNumber(final List list, final ColumnNode funcNode) { if (funcNode instanceof ColumnFuncNode) { return queryColumnNumber(list, (ColumnFuncNode) funcNode); - } else if (funcNode instanceof ColumnNodeValue) { - return queryColumnNumber(list, (ColumnNodeValue) funcNode); + } else if (funcNode instanceof ColumnExpNode) { + return queryColumnNumber(list, (ColumnExpNode) funcNode); } else { return null; } @@ -553,13 +553,13 @@ public final class EntityCache { Number num = null; if (funcNode.getValue() instanceof ColumnFuncNode) { num = queryColumnNumber(list, (ColumnFuncNode) funcNode.getValue()); - } else if (funcNode.getValue() instanceof ColumnNodeValue) { - num = queryColumnNumber(list, (ColumnNodeValue) funcNode.getValue()); + } else if (funcNode.getValue() instanceof ColumnExpNode) { + num = queryColumnNumber(list, (ColumnExpNode) funcNode.getValue()); } return num; } - private Number queryColumnNumber(final List list, final ColumnNodeValue nodeValue) { + private Number queryColumnNumber(final List list, final ColumnExpNode nodeValue) { return null; } @@ -1015,8 +1015,8 @@ public final class EntityCache { numb = getValue((Number) attr.get(entity), express, val); break; case MOV: - if (val instanceof ColumnNodeValue) { - val = updateColumnNodeValue(attr, entity, (ColumnNodeValue) val); + if (val instanceof ColumnExpNode) { + val = updateColumnExpNode(attr, entity, (ColumnExpNode) val); } newval = val; if (val instanceof Number) { @@ -1061,21 +1061,21 @@ public final class EntityCache { return entity; } - private Serializable updateColumnNodeValue(Attribute attr, final T entity, ColumnNodeValue node) { + private Serializable updateColumnExpNode(Attribute attr, final T entity, ColumnExpNode node) { Serializable left = node.getLeft(); if (left instanceof CharSequence) { left = info.getUpdateAttribute(left.toString()).get(entity); if (node.getExpress() == ColumnExpress.MOV) { return left; } - } else if (left instanceof ColumnNodeValue) { - left = updateColumnNodeValue(attr, entity, (ColumnNodeValue) left); + } else if (left instanceof ColumnExpNode) { + left = updateColumnExpNode(attr, entity, (ColumnExpNode) left); } Serializable right = node.getRight(); if (left instanceof CharSequence) { right = info.getUpdateAttribute(right.toString()).get(entity); - } else if (left instanceof ColumnNodeValue) { - right = updateColumnNodeValue(attr, entity, (ColumnNodeValue) right); + } else if (left instanceof ColumnExpNode) { + right = updateColumnExpNode(attr, entity, (ColumnExpNode) right); } return getValue((Number) left, node.getExpress(), right); } diff --git a/src/main/java/org/redkale/source/EntityInfo.java b/src/main/java/org/redkale/source/EntityInfo.java index f863d65dd..1ff12860e 100644 --- a/src/main/java/org/redkale/source/EntityInfo.java +++ b/src/main/java/org/redkale/source/EntityInfo.java @@ -1512,9 +1512,9 @@ public final class EntityInfo { return null; } Object val = cv.getValue(); - //ColumnNodeValue时 cv.getExpress() == ColumnExpress.MOV 只用于updateColumn - if (val instanceof ColumnNodeValue) { - return formatSQLValue(attr, null, (ColumnNodeValue) val, formatter); + //ColumnExpNode时 cv.getExpress() == ColumnExpress.MOV 只用于updateColumn + if (val instanceof ColumnExpNode) { + return formatSQLValue(attr, null, (ColumnExpNode) val, formatter); } if (val instanceof ColumnFuncNode) { return formatSQLValue(attr, null, (ColumnFuncNode) val, formatter); @@ -1545,30 +1545,30 @@ public final class EntityInfo { } protected CharSequence formatSQLValue(Attribute attr, String tabalis, final ColumnFuncNode node, BiFunction formatter) { - if (node.getValue() instanceof ColumnNodeValue) { - return node.getFunc().getColumn(formatSQLValue(attr, tabalis, (ColumnNodeValue) node.getValue(), formatter).toString()); + if (node.getValue() instanceof ColumnExpNode) { + return node.getFunc().getColumn(formatSQLValue(attr, tabalis, (ColumnExpNode) node.getValue(), formatter).toString()); } else { return node.getFunc().getColumn(this.getSQLColumn(tabalis, String.valueOf(node.getValue()))); } } - protected CharSequence formatSQLValue(Attribute attr, String tabalis, final ColumnNodeValue node, BiFunction formatter) { + protected CharSequence formatSQLValue(Attribute attr, String tabalis, final ColumnExpNode node, BiFunction formatter) { Serializable left = node.getLeft(); if (left instanceof CharSequence) { left = this.getSQLColumn(tabalis, left.toString()); if (node.getExpress() == ColumnExpress.MOV) { return (String) left; } - } else if (left instanceof ColumnNodeValue) { - left = "(" + formatSQLValue(attr, tabalis, (ColumnNodeValue) left, formatter) + ")"; + } else if (left instanceof ColumnExpNode) { + left = "(" + formatSQLValue(attr, tabalis, (ColumnExpNode) left, formatter) + ")"; } else if (left instanceof ColumnFuncNode) { left = "(" + formatSQLValue(attr, tabalis, (ColumnFuncNode) left, formatter) + ")"; } Serializable right = node.getRight(); if (right instanceof CharSequence) { right = this.getSQLColumn(null, right.toString()); - } else if (left instanceof ColumnNodeValue) { - right = "(" + formatSQLValue(attr, tabalis, (ColumnNodeValue) right, formatter) + ")"; + } else if (left instanceof ColumnExpNode) { + right = "(" + formatSQLValue(attr, tabalis, (ColumnExpNode) right, formatter) + ")"; } else if (left instanceof ColumnFuncNode) { right = "(" + formatSQLValue(attr, tabalis, (ColumnFuncNode) right, formatter) + ")"; }