增加ColumnValues
This commit is contained in:
@@ -1298,6 +1298,16 @@ public interface CacheSource extends Resourcable {
|
||||
}
|
||||
|
||||
//------------------------ getex ------------------------
|
||||
/**
|
||||
* 获取key的值并可选择设置其过期时间
|
||||
*
|
||||
* @param <T> 泛型
|
||||
* @param key 键
|
||||
* @param expireSeconds 过期秒数
|
||||
* @param type key值的类型
|
||||
*
|
||||
* @return key的值
|
||||
*/
|
||||
public <T> CompletableFuture<T> getexAsync(String key, int expireSeconds, Type type);
|
||||
|
||||
default CompletableFuture<String> getexStringAsync(String key, int expireSeconds) {
|
||||
|
||||
436
src/main/java/org/redkale/source/ColumnValues.java
Normal file
436
src/main/java/org/redkale/source/ColumnValues.java
Normal file
@@ -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的集合类
|
||||
*
|
||||
* <p>
|
||||
* 详情见: https://redkale.org
|
||||
*
|
||||
* @author zhangjx
|
||||
* @since 2.8.0
|
||||
*/
|
||||
public class ColumnValues {
|
||||
|
||||
private final List<ColumnValue> 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 <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
* @since 2.8.0
|
||||
*/
|
||||
public <T extends Serializable> ColumnValues set(LambdaSupplier<T> func) {
|
||||
list.add(ColumnValue.set(func));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} + {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T extends Serializable> ColumnValues inc(LambdaSupplier<T> func) {
|
||||
list.add(ColumnValue.inc(func));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} - {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T extends Serializable> ColumnValues dec(LambdaSupplier<T> func) {
|
||||
list.add(ColumnValue.dec(func));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} * {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T extends Serializable> ColumnValues mul(LambdaSupplier<T> func) {
|
||||
list.add(ColumnValue.mul(func));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} / {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T extends Serializable> ColumnValues div(LambdaSupplier<T> func) {
|
||||
list.add(ColumnValue.div(func));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} % {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
* @since 2.8.0
|
||||
*/
|
||||
public <T extends Serializable> ColumnValues mod(LambdaSupplier<T> func) {
|
||||
list.add(ColumnValue.mod(func));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} & {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T extends Serializable> ColumnValues and(LambdaSupplier<T> func) {
|
||||
list.add(ColumnValue.and(func));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} | {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T extends Serializable> ColumnValues orr(LambdaSupplier<T> func) {
|
||||
list.add(ColumnValue.orr(func));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param value 字段值
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T> ColumnValues set(LambdaFunction<T, ?> func, Serializable value) {
|
||||
list.add(ColumnValue.set(func, value));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} + {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param value 字段值
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T> ColumnValues inc(LambdaFunction<T, ?> func, Serializable value) {
|
||||
list.add(ColumnValue.inc(func, value));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} + 1 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T> ColumnValues inc(LambdaFunction<T, ?> func) {
|
||||
list.add(ColumnValue.inc(func));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} - {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param value 字段值
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T> ColumnValues dec(LambdaFunction<T, ?> func, Serializable value) {
|
||||
list.add(ColumnValue.dec(func, value));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} - 1 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T> ColumnValues dec(LambdaFunction<T, ?> func) {
|
||||
list.add(ColumnValue.dec(func));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} * {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param value 字段值
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
* @since 2.8.0
|
||||
*/
|
||||
public <T> ColumnValues mul(LambdaFunction<T, ?> func, Serializable value) {
|
||||
list.add(ColumnValue.mul(func, value));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} / {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param value 字段值
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T> ColumnValues div(LambdaFunction<T, ?> func, Serializable value) {
|
||||
list.add(ColumnValue.div(func, value));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} % {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param value 字段值
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T> ColumnValues mod(LambdaFunction<T, ?> func, Serializable value) {
|
||||
list.add(ColumnValue.mod(func, value));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} & {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param value 字段值
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T> ColumnValues and(LambdaFunction<T, ?> func, Serializable value) {
|
||||
list.add(ColumnValue.and(func, value));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 {column} = {column} | {value} 操作
|
||||
*
|
||||
* @param func 字段名Lambda
|
||||
* @param value 字段值
|
||||
* @param <T> 值的泛型
|
||||
*
|
||||
* @return ColumnValues
|
||||
*
|
||||
*/
|
||||
public <T> ColumnValues orr(LambdaFunction<T, ?> 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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -164,7 +164,7 @@ public interface DataSource extends Resourcable {
|
||||
//-------------------------deleteAsync--------------------------
|
||||
/**
|
||||
* 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
|
||||
* 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id} <br>
|
||||
等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id} <br>
|
||||
*
|
||||
* @param <T> 泛型
|
||||
* @param entitys Entity对象
|
||||
@@ -175,7 +175,7 @@ public interface DataSource extends Resourcable {
|
||||
|
||||
/**
|
||||
* 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
|
||||
* 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id} <br>
|
||||
等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id} <br>
|
||||
*
|
||||
* @param <T> 泛型
|
||||
* @param entitys Entity对象
|
||||
@@ -191,7 +191,7 @@ public interface DataSource extends Resourcable {
|
||||
|
||||
/**
|
||||
* 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
|
||||
* 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id} <br>
|
||||
等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id} <br>
|
||||
*
|
||||
* @param <T> 泛型
|
||||
* @param entitys Entity对象
|
||||
@@ -207,7 +207,7 @@ public interface DataSource extends Resourcable {
|
||||
|
||||
/**
|
||||
* 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
|
||||
* 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id} <br>
|
||||
等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id} <br>
|
||||
*
|
||||
* @param <T> 泛型
|
||||
* @param entitys Entity对象
|
||||
@@ -218,7 +218,7 @@ public interface DataSource extends Resourcable {
|
||||
|
||||
/**
|
||||
* 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
|
||||
* 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id} <br>
|
||||
等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id} <br>
|
||||
*
|
||||
* @param <T> 泛型
|
||||
* @param entitys Entity对象
|
||||
@@ -234,7 +234,7 @@ public interface DataSource extends Resourcable {
|
||||
|
||||
/**
|
||||
* 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
|
||||
* 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id} <br>
|
||||
等价SQL: DELETE FROM {table} WHERE {primary} IN {getValues.id} <br>
|
||||
*
|
||||
* @param <T> 泛型
|
||||
* @param entitys Entity对象
|
||||
@@ -702,6 +702,22 @@ public interface DataSource extends Resourcable {
|
||||
*/
|
||||
public <T> int updateColumn(final Class<T> clazz, final Serializable pk, final ColumnValue... values);
|
||||
|
||||
/**
|
||||
* 更新指定主键值记录的部分字段 <br>
|
||||
* 字段赋值操作选项见 ColumnExpress <br>
|
||||
* 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param clazz Entity类
|
||||
* @param pk 主键
|
||||
* @param values 更新字段
|
||||
*
|
||||
* @return 影响的记录条数
|
||||
*/
|
||||
default <T> int updateColumn(final Class<T> clazz, final Serializable pk, final ColumnValues values) {
|
||||
return updateColumn(clazz, pk, values.getValues());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新指定主键值记录的部分字段 <br>
|
||||
* 字段赋值操作选项见 ColumnExpress <br>
|
||||
@@ -733,6 +749,22 @@ public interface DataSource extends Resourcable {
|
||||
*/
|
||||
public <T> CompletableFuture<Integer> updateColumnAsync(final Class<T> clazz, final Serializable pk, final ColumnValue... values);
|
||||
|
||||
/**
|
||||
* 更新指定主键值记录的部分字段 <br>
|
||||
* 字段赋值操作选项见 ColumnExpress <br>
|
||||
* 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param clazz Entity类
|
||||
* @param pk 主键
|
||||
* @param values 更新字段
|
||||
*
|
||||
* @return 影响的记录条数CompletableFuture
|
||||
*/
|
||||
default <T> CompletableFuture<Integer> updateColumnAsync(final Class<T> clazz, final Serializable pk, final ColumnValues values) {
|
||||
return updateColumnAsync(clazz, pk, values.getValues());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新指定主键值记录的部分字段 <br>
|
||||
* 字段赋值操作选项见 ColumnExpress <br>
|
||||
@@ -767,6 +799,23 @@ public interface DataSource extends Resourcable {
|
||||
return updateColumn(clazz, node, (Flipper) null, values);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新符合过滤条件记录的部分字段 <br>
|
||||
* 字段赋值操作选项见 ColumnExpress <br>
|
||||
* <b>注意</b>:Entity类中标记为@Column(updatable=false)不会被更新 <br>
|
||||
* 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param clazz Entity类
|
||||
* @param node 过滤条件
|
||||
* @param values 更新字段
|
||||
*
|
||||
* @return 影响的记录条数
|
||||
*/
|
||||
default <T> int updateColumn(final Class<T> clazz, final FilterNode node, final ColumnValues values) {
|
||||
return updateColumn(clazz, node, (Flipper) null, values.getValues());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新符合过滤条件记录的部分字段 <br>
|
||||
* 字段赋值操作选项见 ColumnExpress <br>
|
||||
@@ -784,11 +833,29 @@ public interface DataSource extends Resourcable {
|
||||
return updateColumnAsync(clazz, node, (Flipper) null, values);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新符合过滤条件记录的部分字段 <br>
|
||||
* 字段赋值操作选项见 ColumnExpress <br>
|
||||
* <b>注意</b>:Entity类中标记为@Column(updatable=false)不会被更新 <br>
|
||||
* 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param clazz Entity类
|
||||
* @param node 过滤条件
|
||||
* @param values 更新字段
|
||||
*
|
||||
* @return 影响的记录条数CompletableFuture
|
||||
*/
|
||||
default <T> CompletableFuture<Integer> updateColumnAsync(final Class<T> clazz, final FilterNode node, final ColumnValues values) {
|
||||
return updateColumnAsync(clazz, node, (Flipper) null, values.getValues());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新符合过滤条件的记录的指定字段 <br>
|
||||
* Flipper中offset字段将被忽略 <br>
|
||||
* <b>注意</b>:Entity类中标记为@Column(updatable=false)不会被更新 <br>
|
||||
* 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY {flipper.sort} <br>
|
||||
* 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY
|
||||
* {flipper.sort} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param clazz Entity类
|
||||
@@ -804,7 +871,27 @@ public interface DataSource extends Resourcable {
|
||||
* 更新符合过滤条件的记录的指定字段 <br>
|
||||
* Flipper中offset字段将被忽略 <br>
|
||||
* <b>注意</b>:Entity类中标记为@Column(updatable=false)不会被更新 <br>
|
||||
* 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY {flipper.sort} <br>
|
||||
* 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY
|
||||
* {flipper.sort} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param clazz Entity类
|
||||
* @param node 过滤条件
|
||||
* @param flipper 翻页对象
|
||||
* @param values 更新字段
|
||||
*
|
||||
* @return 影响的记录条数
|
||||
*/
|
||||
default <T> int updateColumn(final Class<T> clazz, final FilterNode node, final Flipper flipper, final ColumnValues values) {
|
||||
return updateColumn(clazz, node, flipper, values.getValues());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新符合过滤条件的记录的指定字段 <br>
|
||||
* Flipper中offset字段将被忽略 <br>
|
||||
* <b>注意</b>:Entity类中标记为@Column(updatable=false)不会被更新 <br>
|
||||
* 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY
|
||||
* {flipper.sort} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param clazz Entity类
|
||||
@@ -816,6 +903,25 @@ public interface DataSource extends Resourcable {
|
||||
*/
|
||||
public <T> CompletableFuture<Integer> updateColumnAsync(final Class<T> clazz, final FilterNode node, final Flipper flipper, final ColumnValue... values);
|
||||
|
||||
/**
|
||||
* 更新符合过滤条件的记录的指定字段 <br>
|
||||
* Flipper中offset字段将被忽略 <br>
|
||||
* <b>注意</b>:Entity类中标记为@Column(updatable=false)不会被更新 <br>
|
||||
* 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY
|
||||
* {flipper.sort} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param clazz Entity类
|
||||
* @param node 过滤条件
|
||||
* @param flipper 翻页对象
|
||||
* @param values 更新字段
|
||||
*
|
||||
* @return 影响的记录条数CompletableFuture
|
||||
*/
|
||||
default <T> CompletableFuture<Integer> updateColumnAsync(final Class<T> clazz, final FilterNode node, final Flipper flipper, final ColumnValues values) {
|
||||
return updateColumnAsync(clazz, node, flipper, values.getValues());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新单个记录的指定字段 <br>
|
||||
* <b>注意</b>:Entity类中标记为@Column(updatable=false)不会被更新 <br>
|
||||
@@ -1393,7 +1499,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE GROUP BY {col1} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
@@ -1412,7 +1519,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} GROUP BY {col1} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
@@ -1431,7 +1539,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter bean} GROUP BY {col1} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
@@ -1451,7 +1560,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter bean} GROUP BY {col1} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
@@ -1471,7 +1581,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter node} GROUP BY {col1} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
@@ -1489,7 +1600,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter node} GROUP BY {col1} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
@@ -1507,7 +1619,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} GROUP BY {col1}, {col2} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
@@ -1526,7 +1639,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} GROUP BY {col1}, {col2} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
@@ -1545,7 +1659,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter bean} GROUP BY {col1}, {col2} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
@@ -1565,7 +1680,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter bean} GROUP BY {col1}, {col2} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
@@ -1585,7 +1701,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter node} GROUP BY {col1}, {col2} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
@@ -1603,7 +1720,8 @@ public interface DataSource extends Resourcable {
|
||||
/**
|
||||
* 查询符合过滤条件记录的GROUP BY聚合结果Map <br>
|
||||
* 等价SQL: SELECT col1, col2, FUNC{funcColumn1}, FUNC{funcColumn2} FROM {table} WHERE {filter node} GROUP BY {col1}, {col2} <br>
|
||||
* 如 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<br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
|
||||
Reference in New Issue
Block a user