diff --git a/src/main/java/org/redkale/source/CacheSource.java b/src/main/java/org/redkale/source/CacheSource.java index 3653154d0..b43384944 100644 --- a/src/main/java/org/redkale/source/CacheSource.java +++ b/src/main/java/org/redkale/source/CacheSource.java @@ -1298,6 +1298,16 @@ public interface CacheSource extends Resourcable { } //------------------------ getex ------------------------ + /** + * 获取key的值并可选择设置其过期时间 + * + * @param 泛型 + * @param key 键 + * @param expireSeconds 过期秒数 + * @param type key值的类型 + * + * @return key的值 + */ public CompletableFuture getexAsync(String key, int expireSeconds, Type type); default CompletableFuture getexStringAsync(String key, int expireSeconds) { diff --git a/src/main/java/org/redkale/source/ColumnValues.java b/src/main/java/org/redkale/source/ColumnValues.java new file mode 100644 index 000000000..caacf37e3 --- /dev/null +++ b/src/main/java/org/redkale/source/ColumnValues.java @@ -0,0 +1,436 @@ +/* + * + */ +package org.redkale.source; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import org.redkale.util.LambdaFunction; +import org.redkale.util.LambdaSupplier; + +/** + * ColumnValue的集合类 + * + *

+ * 详情见: https://redkale.org + * + * @author zhangjx + * @since 2.8.0 + */ +public class ColumnValues { + + private final List list = new ArrayList<>(); + + public static ColumnValues create() { + return new ColumnValues(); + } + + /** + * 返回 {column} = {value} 操作 + * + * @param column 字段名 + * @param value 字段值 + * + * @return ColumnValues + */ + public ColumnValues set(String column, Serializable value) { + list.add(ColumnValue.set(column, value)); + return this; + } + + /** + * 返回 {column} = {column} + {value} 操作 + * + * @param column 字段名 + * @param value 字段值 + * + * @return ColumnValues + */ + public ColumnValues inc(String column, Number value) { + list.add(ColumnValue.set(column, value)); + return this; + } + + /** + * 返回 {column} = {column} + 1 操作 + * + * @param column 字段名 + * + * @return ColumnValues + * + */ + public ColumnValues inc(String column) { + list.add(ColumnValue.inc(column)); + return this; + } + + /** + * 返回 {column} = {column} - {value} 操作 + * + * @param column 字段名 + * @param value 字段值 + * + * @return ColumnValues + */ + public ColumnValues dec(String column, Number value) { + list.add(ColumnValue.dec(column, value)); + return this; + } + + /** + * 返回 {column} = {column} - 1 操作 + * + * @param column 字段名 + * + * @return ColumnValues + * + */ + public ColumnValues dec(String column) { + list.add(ColumnValue.dec(column)); + return this; + } + + /** + * 返回 {column} = {column} * {value} 操作 + * + * @param column 字段名 + * @param value 字段值 + * + * @return ColumnValues + */ + public ColumnValues mul(String column, Number value) { + list.add(ColumnValue.mul(column, value)); + return this; + } + + /** + * 返回 {column} = {column} / {value} 操作 + * + * @param column 字段名 + * @param value 字段值 + * + * @return ColumnValues + */ + public ColumnValues div(String column, Number value) { + list.add(ColumnValue.div(column, value)); + return this; + } + + /** + * 返回 {column} = {column} % {value} 操作 + * + * @param column 字段名 + * @param value 字段值 + * + * @return ColumnValues + */ + public ColumnValues mod(String column, Serializable value) { + list.add(ColumnValue.mod(column, value)); + return this; + } + + /** + * 返回 {column} = {column} & {value} 操作 + * + * @param column 字段名 + * @param value 字段值 + * + * @return ColumnValues + */ + public ColumnValues and(String column, Serializable value) { + list.add(ColumnValue.and(column, value)); + return this; + } + + /** + * 返回 {column} = {column} | {value} 操作 + * + * @param column 字段名 + * @param value 字段值 + * + * @return ColumnValues + */ + public ColumnValues orr(String column, Serializable value) { + list.add(ColumnValue.orr(column, value)); + return this; + } + + /** + * 返回 {column} = {value} 操作 + * + * @param func 字段名Lambda + * @param 值的泛型 + * + * @return ColumnValues + * + * @since 2.8.0 + */ + public ColumnValues set(LambdaSupplier func) { + list.add(ColumnValue.set(func)); + return this; + } + + /** + * 返回 {column} = {column} + {value} 操作 + * + * @param func 字段名Lambda + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues inc(LambdaSupplier func) { + list.add(ColumnValue.inc(func)); + return this; + } + + /** + * 返回 {column} = {column} - {value} 操作 + * + * @param func 字段名Lambda + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues dec(LambdaSupplier func) { + list.add(ColumnValue.dec(func)); + return this; + } + + /** + * 返回 {column} = {column} * {value} 操作 + * + * @param func 字段名Lambda + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues mul(LambdaSupplier func) { + list.add(ColumnValue.mul(func)); + return this; + } + + /** + * 返回 {column} = {column} / {value} 操作 + * + * @param func 字段名Lambda + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues div(LambdaSupplier func) { + list.add(ColumnValue.div(func)); + return this; + } + + /** + * 返回 {column} = {column} % {value} 操作 + * + * @param func 字段名Lambda + * @param 值的泛型 + * + * @return ColumnValues + * + * @since 2.8.0 + */ + public ColumnValues mod(LambdaSupplier func) { + list.add(ColumnValue.mod(func)); + return this; + } + + /** + * 返回 {column} = {column} & {value} 操作 + * + * @param func 字段名Lambda + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues and(LambdaSupplier func) { + list.add(ColumnValue.and(func)); + return this; + } + + /** + * 返回 {column} = {column} | {value} 操作 + * + * @param func 字段名Lambda + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues orr(LambdaSupplier func) { + list.add(ColumnValue.orr(func)); + return this; + } + + /** + * 返回 {column} = {value} 操作 + * + * @param func 字段名Lambda + * @param value 字段值 + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues set(LambdaFunction func, Serializable value) { + list.add(ColumnValue.set(func, value)); + return this; + } + + /** + * 返回 {column} = {column} + {value} 操作 + * + * @param func 字段名Lambda + * @param value 字段值 + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues inc(LambdaFunction func, Serializable value) { + list.add(ColumnValue.inc(func, value)); + return this; + } + + /** + * 返回 {column} = {column} + 1 操作 + * + * @param func 字段名Lambda + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues inc(LambdaFunction func) { + list.add(ColumnValue.inc(func)); + return this; + } + + /** + * 返回 {column} = {column} - {value} 操作 + * + * @param func 字段名Lambda + * @param value 字段值 + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues dec(LambdaFunction func, Serializable value) { + list.add(ColumnValue.dec(func, value)); + return this; + } + + /** + * 返回 {column} = {column} - 1 操作 + * + * @param func 字段名Lambda + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues dec(LambdaFunction func) { + list.add(ColumnValue.dec(func)); + return this; + } + + /** + * 返回 {column} = {column} * {value} 操作 + * + * @param func 字段名Lambda + * @param value 字段值 + * @param 值的泛型 + * + * @return ColumnValues + * + * @since 2.8.0 + */ + public ColumnValues mul(LambdaFunction func, Serializable value) { + list.add(ColumnValue.mul(func, value)); + return this; + } + + /** + * 返回 {column} = {column} / {value} 操作 + * + * @param func 字段名Lambda + * @param value 字段值 + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues div(LambdaFunction func, Serializable value) { + list.add(ColumnValue.div(func, value)); + return this; + } + + /** + * 返回 {column} = {column} % {value} 操作 + * + * @param func 字段名Lambda + * @param value 字段值 + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues mod(LambdaFunction func, Serializable value) { + list.add(ColumnValue.mod(func, value)); + return this; + } + + /** + * 返回 {column} = {column} & {value} 操作 + * + * @param func 字段名Lambda + * @param value 字段值 + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues and(LambdaFunction func, Serializable value) { + list.add(ColumnValue.and(func, value)); + return this; + } + + /** + * 返回 {column} = {column} | {value} 操作 + * + * @param func 字段名Lambda + * @param value 字段值 + * @param 值的泛型 + * + * @return ColumnValues + * + */ + public ColumnValues orr(LambdaFunction func, Serializable value) { + list.add(ColumnValue.orr(func, value)); + return this; + } + + /** + * 获取ColumnValue数组 + * + * @return ColumnValue[] + */ + public ColumnValue[] getValues() { + return list.toArray(new ColumnValue[list.size()]); + } + + @Override + public String toString() { + return String.valueOf(list); + } + +} diff --git a/src/main/java/org/redkale/source/DataSource.java b/src/main/java/org/redkale/source/DataSource.java index 60e72a91c..4c591f50f 100644 --- a/src/main/java/org/redkale/source/DataSource.java +++ b/src/main/java/org/redkale/source/DataSource.java @@ -164,7 +164,7 @@ public interface DataSource extends Resourcable { //-------------------------deleteAsync-------------------------- /** * 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中
- * 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id}
+ 等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id}
* * @param 泛型 * @param entitys Entity对象 @@ -175,7 +175,7 @@ public interface DataSource extends Resourcable { /** * 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中
- * 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id}
+ 等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id}
* * @param 泛型 * @param entitys Entity对象 @@ -191,7 +191,7 @@ public interface DataSource extends Resourcable { /** * 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中
- * 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id}
+ 等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id}
* * @param 泛型 * @param entitys Entity对象 @@ -207,7 +207,7 @@ public interface DataSource extends Resourcable { /** * 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中
- * 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id}
+ 等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id}
* * @param 泛型 * @param entitys Entity对象 @@ -218,7 +218,7 @@ public interface DataSource extends Resourcable { /** * 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中
- * 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id}
+ 等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id}
* * @param 泛型 * @param entitys Entity对象 @@ -234,7 +234,7 @@ public interface DataSource extends Resourcable { /** * 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中
- * 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id}
+ 等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id}
* * @param 泛型 * @param entitys Entity对象 @@ -702,6 +702,22 @@ public interface DataSource extends Resourcable { */ public int updateColumn(final Class clazz, final Serializable pk, final ColumnValue... values); + /** + * 更新指定主键值记录的部分字段
+ * 字段赋值操作选项见 ColumnExpress
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param pk 主键 + * @param values 更新字段 + * + * @return 影响的记录条数 + */ + default int updateColumn(final Class clazz, final Serializable pk, final ColumnValues values) { + return updateColumn(clazz, pk, values.getValues()); + } + /** * 更新指定主键值记录的部分字段
* 字段赋值操作选项见 ColumnExpress
@@ -733,6 +749,22 @@ public interface DataSource extends Resourcable { */ public CompletableFuture updateColumnAsync(final Class clazz, final Serializable pk, final ColumnValue... values); + /** + * 更新指定主键值记录的部分字段
+ * 字段赋值操作选项见 ColumnExpress
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param pk 主键 + * @param values 更新字段 + * + * @return 影响的记录条数CompletableFuture + */ + default CompletableFuture updateColumnAsync(final Class clazz, final Serializable pk, final ColumnValues values) { + return updateColumnAsync(clazz, pk, values.getValues()); + } + /** * 更新指定主键值记录的部分字段
* 字段赋值操作选项见 ColumnExpress
@@ -767,6 +799,23 @@ public interface DataSource extends Resourcable { return updateColumn(clazz, node, (Flipper) null, values); } + /** + * 更新符合过滤条件记录的部分字段
+ * 字段赋值操作选项见 ColumnExpress
+ * 注意:Entity类中标记为@Column(updatable=false)不会被更新
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param node 过滤条件 + * @param values 更新字段 + * + * @return 影响的记录条数 + */ + default int updateColumn(final Class clazz, final FilterNode node, final ColumnValues values) { + return updateColumn(clazz, node, (Flipper) null, values.getValues()); + } + /** * 更新符合过滤条件记录的部分字段
* 字段赋值操作选项见 ColumnExpress
@@ -784,11 +833,29 @@ public interface DataSource extends Resourcable { return updateColumnAsync(clazz, node, (Flipper) null, values); } + /** + * 更新符合过滤条件记录的部分字段
+ * 字段赋值操作选项见 ColumnExpress
+ * 注意:Entity类中标记为@Column(updatable=false)不会被更新
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param node 过滤条件 + * @param values 更新字段 + * + * @return 影响的记录条数CompletableFuture + */ + default CompletableFuture updateColumnAsync(final Class clazz, final FilterNode node, final ColumnValues values) { + return updateColumnAsync(clazz, node, (Flipper) null, values.getValues()); + } + /** * 更新符合过滤条件的记录的指定字段
* Flipper中offset字段将被忽略
* 注意:Entity类中标记为@Column(updatable=false)不会被更新
- * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY {flipper.sort}
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY + * {flipper.sort}
* * @param Entity泛型 * @param clazz Entity类 @@ -804,7 +871,27 @@ public interface DataSource extends Resourcable { * 更新符合过滤条件的记录的指定字段
* Flipper中offset字段将被忽略
* 注意:Entity类中标记为@Column(updatable=false)不会被更新
- * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY {flipper.sort}
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY + * {flipper.sort}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param node 过滤条件 + * @param flipper 翻页对象 + * @param values 更新字段 + * + * @return 影响的记录条数 + */ + default int updateColumn(final Class clazz, final FilterNode node, final Flipper flipper, final ColumnValues values) { + return updateColumn(clazz, node, flipper, values.getValues()); + } + + /** + * 更新符合过滤条件的记录的指定字段
+ * Flipper中offset字段将被忽略
+ * 注意:Entity类中标记为@Column(updatable=false)不会被更新
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY + * {flipper.sort}
* * @param Entity泛型 * @param clazz Entity类 @@ -816,6 +903,25 @@ public interface DataSource extends Resourcable { */ public CompletableFuture updateColumnAsync(final Class clazz, final FilterNode node, final Flipper flipper, final ColumnValue... values); + /** + * 更新符合过滤条件的记录的指定字段
+ * Flipper中offset字段将被忽略
+ * 注意:Entity类中标记为@Column(updatable=false)不会被更新
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY + * {flipper.sort}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param node 过滤条件 + * @param flipper 翻页对象 + * @param values 更新字段 + * + * @return 影响的记录条数CompletableFuture + */ + default CompletableFuture updateColumnAsync(final Class clazz, final FilterNode node, final Flipper flipper, final ColumnValues values) { + return updateColumnAsync(clazz, node, flipper, values.getValues()); + } + /** * 更新单个记录的指定字段
* 注意:Entity类中标记为@Column(updatable=false)不会被更新
@@ -1393,7 +1499,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型 @@ -1412,7 +1519,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型 @@ -1431,7 +1539,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型 @@ -1451,7 +1560,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型 @@ -1471,7 +1581,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型 @@ -1489,7 +1600,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型 @@ -1507,7 +1619,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型 @@ -1526,7 +1639,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型 @@ -1545,7 +1659,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型 @@ -1565,7 +1680,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型 @@ -1585,7 +1701,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型 @@ -1603,7 +1720,8 @@ 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(ColumnExpNode.div(ColumnFuncNode.sum("money"), 100), ColumnFuncNode.avg(ColumnExpNode.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泛型