DataSqlSource增加natvieQuery的参数模板功能
This commit is contained in:
@@ -24,6 +24,7 @@ import org.redkale.persistence.Table;
|
||||
import org.redkale.service.Local;
|
||||
import org.redkale.source.EntityInfo.EntityColumn;
|
||||
import org.redkale.util.*;
|
||||
import static org.redkale.util.Utility.isEmpty;
|
||||
|
||||
/**
|
||||
* DataSource的SQL抽象实现类 <br>
|
||||
@@ -2193,7 +2194,7 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource implement
|
||||
if (sb.length() > 0) {
|
||||
sb.append(", ");
|
||||
}
|
||||
sb.append(ffc.func.getColumn((col == null || col.isEmpty() ? "*" : info.getSQLColumn("a", col))));
|
||||
sb.append(ffc.func.getColumn((isEmpty(col) ? "*" : info.getSQLColumn("a", col))));
|
||||
}
|
||||
}
|
||||
final String sql = "SELECT " + sb + " FROM " + tables[0] + " a"
|
||||
@@ -2271,7 +2272,7 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource implement
|
||||
final Set<String> haset = new HashSet<>();
|
||||
final CharSequence join = node == null ? null : node.createSQLJoin(this, false, joinTabalis, haset, info);
|
||||
final CharSequence where = node == null ? null : node.createSQLExpress(this, info, joinTabalis);
|
||||
final String sql = "SELECT " + func.getColumn((column == null || column.isEmpty() ? "*" : info.getSQLColumn("a", column))) + " FROM " + tables[0] + " a"
|
||||
final String sql = "SELECT " + func.getColumn((isEmpty(column) ? "*" : info.getSQLColumn("a", column))) + " FROM " + tables[0] + " a"
|
||||
+ (join == null ? "" : join) + ((where == null || where.length() == 0) ? "" : (" WHERE " + where));
|
||||
return sql;
|
||||
}
|
||||
@@ -3260,7 +3261,7 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource implement
|
||||
this.prepare = prepare;
|
||||
this.sql = sql;
|
||||
this.tables = tables;
|
||||
this.blobs = blobs == null || blobs.isEmpty() ? null : blobs;
|
||||
this.blobs = isEmpty(blobs) ? null : blobs;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import org.redkale.annotation.Component;
|
||||
import org.redkale.convert.Convert;
|
||||
import org.redkale.util.Resourcable;
|
||||
import org.redkale.util.*;
|
||||
|
||||
/**
|
||||
* Redkale中缓存数据源的核心类。 主要供业务开发者使用, 技术开发者提供CacheSource的实现。<br>
|
||||
@@ -1438,7 +1438,7 @@ public interface CacheSource extends Resourcable {
|
||||
}
|
||||
|
||||
default <T> CompletableFuture<T> srandmemberAsync(String key, Type componentType) {
|
||||
return srandmemberAsync(key, componentType, 1).thenApply(list -> list != null && !list.isEmpty() ? (T) list.get(0) : null);
|
||||
return srandmemberAsync(key, componentType, 1).thenApply(list -> Utility.isNotEmpty(list) ? (T) list.get(0) : null);
|
||||
}
|
||||
|
||||
default CompletableFuture<String> srandmemberStringAsync(String key) {
|
||||
|
||||
@@ -2491,7 +2491,7 @@ public class DataJdbcSource extends AbstractDataSqlSource {
|
||||
*/
|
||||
@Override
|
||||
public int nativeUpdate(String sql) {
|
||||
return nativeUpdate(new String[]{sql})[0];
|
||||
return nativeUpdates(new String[]{sql})[0];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2503,7 +2503,7 @@ public class DataJdbcSource extends AbstractDataSqlSource {
|
||||
* @return 结果数组
|
||||
*/
|
||||
@Override
|
||||
public int[] nativeUpdate(String... sqls) {
|
||||
public int[] nativeUpdates(String... sqls) {
|
||||
if (sqls.length == 0) {
|
||||
return new int[0];
|
||||
}
|
||||
@@ -2571,6 +2571,16 @@ public class DataJdbcSource extends AbstractDataSqlSource {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int nativeUpdate(String sql, Map<String, Object> params) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public <V> V nativeQuery(String sql, BiConsumer<Object, Object> consumer, Function<DataResultSet, V> handler, Map<String, Object> params) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public int directExecute(String sql) {
|
||||
return nativeUpdate(sql);
|
||||
@@ -2578,7 +2588,7 @@ public class DataJdbcSource extends AbstractDataSqlSource {
|
||||
|
||||
@Deprecated
|
||||
public int[] directExecute(String... sqls) {
|
||||
return nativeUpdate(sqls);
|
||||
return nativeUpdates(sqls);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
|
||||
@@ -99,7 +99,7 @@ public class DataMemorySource extends AbstractDataSqlSource implements SearchSou
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] nativeUpdate(String... sqls) {
|
||||
public int[] nativeUpdates(String... sqls) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@@ -108,6 +108,16 @@ public class DataMemorySource extends AbstractDataSqlSource implements SearchSou
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int nativeUpdate(String sql, Map<String, Object> params) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public <V> V nativeQuery(String sql, BiConsumer<Object, Object> consumer, Function<DataResultSet, V> handler, Map<String, Object> params) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String prepareParamSign(int index) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
*/
|
||||
package org.redkale.source;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.*;
|
||||
import java.util.function.*;
|
||||
import static org.redkale.source.DataResultSet.formatColumnValue;
|
||||
import org.redkale.util.Reproduce;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -19,9 +21,10 @@ import static org.redkale.source.DataResultSet.formatColumnValue;
|
||||
*/
|
||||
public interface DataSqlSource extends DataSource {
|
||||
|
||||
public int nativeUpdate(String sql);
|
||||
public int[] nativeUpdates(String... sqls);
|
||||
|
||||
public int[] nativeUpdate(String... sqls);
|
||||
//----------------------------- 无参数 -----------------------------
|
||||
public int nativeUpdate(String sql);
|
||||
|
||||
//BiConsumer 参数1: connection, 参数2: statement
|
||||
public <V> V nativeQuery(String sql, BiConsumer<Object, Object> consumer, Function<DataResultSet, V> handler);
|
||||
@@ -35,7 +38,8 @@ public interface DataSqlSource extends DataSource {
|
||||
if (!rset.next()) {
|
||||
return null;
|
||||
}
|
||||
if (type.isPrimitive() || type == byte[].class || (!Map.class.isAssignableFrom(type) && type.getName().startsWith("java."))) {
|
||||
if (type == byte[].class || type == String.class || type.isPrimitive() || Number.class.isAssignableFrom(type)
|
||||
|| (!Map.class.isAssignableFrom(type) && type.getName().startsWith("java."))) {
|
||||
return (V) formatColumnValue(type, rset.getObject(1));
|
||||
}
|
||||
return EntityBuilder.load(type).getObjectValue(rset);
|
||||
@@ -44,7 +48,8 @@ public interface DataSqlSource extends DataSource {
|
||||
|
||||
default <V> List<V> nativeQueryList(Class<V> type, String sql) {
|
||||
return nativeQuery(sql, rset -> {
|
||||
if (type.isPrimitive() || type == byte[].class || (!Map.class.isAssignableFrom(type) && type.getName().startsWith("java."))) {
|
||||
if (type == byte[].class || type == String.class || type.isPrimitive() || Number.class.isAssignableFrom(type)
|
||||
|| (!Map.class.isAssignableFrom(type) && type.getName().startsWith("java."))) {
|
||||
List<V> list = new ArrayList<>();
|
||||
while (rset.next()) {
|
||||
list.add(rset.wasNull() ? null : (V) formatColumnValue(type, rset.getObject(1)));
|
||||
@@ -74,4 +79,90 @@ public interface DataSqlSource extends DataSource {
|
||||
default Map<Integer, String> nativeQueryIntStrMap(String sql) {
|
||||
return nativeQueryMap(Integer.class, String.class, sql);
|
||||
}
|
||||
|
||||
//----------------------------- Map<String, Object> -----------------------------
|
||||
public int nativeUpdate(String sql, Map<String, Object> params);
|
||||
|
||||
//BiConsumer 参数1: connection, 参数2: statement
|
||||
public <V> V nativeQuery(String sql, BiConsumer<Object, Object> consumer, Function<DataResultSet, V> handler, Map<String, Object> params);
|
||||
|
||||
default <V> V nativeQuery(String sql, Function<DataResultSet, V> handler, Map<String, Object> params) {
|
||||
return nativeQuery(sql, null, handler, params);
|
||||
}
|
||||
|
||||
default <V> V nativeQueryOne(Class<V> type, String sql, Map<String, Object> params) {
|
||||
return nativeQuery(sql, rset -> {
|
||||
if (!rset.next()) {
|
||||
return null;
|
||||
}
|
||||
if (type == byte[].class || type == String.class || type.isPrimitive() || Number.class.isAssignableFrom(type)
|
||||
|| (!Map.class.isAssignableFrom(type) && type.getName().startsWith("java."))) {
|
||||
return (V) formatColumnValue(type, rset.getObject(1));
|
||||
}
|
||||
return EntityBuilder.load(type).getObjectValue(rset);
|
||||
}, params);
|
||||
}
|
||||
|
||||
default <V> List<V> nativeQueryList(Class<V> type, String sql, Map<String, Object> params) {
|
||||
return nativeQuery(sql, rset -> {
|
||||
if (type == byte[].class || type == String.class || type.isPrimitive() || Number.class.isAssignableFrom(type)
|
||||
|| (!Map.class.isAssignableFrom(type) && type.getName().startsWith("java."))) {
|
||||
List<V> list = new ArrayList<>();
|
||||
while (rset.next()) {
|
||||
list.add(rset.wasNull() ? null : (V) formatColumnValue(type, rset.getObject(1)));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
return EntityBuilder.load(type).getObjectList(rset);
|
||||
}, params);
|
||||
}
|
||||
|
||||
default <K, V> Map<K, V> nativeQueryMap(Class<K> keyType, Class<V> valType, String sql, Map<String, Object> params) {
|
||||
return nativeQuery(sql, rset -> {
|
||||
Map<K, V> map = new LinkedHashMap<K, V>();
|
||||
while (rset.next()) {
|
||||
if (!rset.wasNull()) {
|
||||
map.put((K) formatColumnValue(keyType, rset.getObject(1)), (V) formatColumnValue(valType, rset.getObject(2)));
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}, params);
|
||||
}
|
||||
|
||||
default Map<String, String> nativeQueryStrStrMap(String sql, Map<String, Object> params) {
|
||||
return nativeQueryMap(String.class, String.class, sql, params);
|
||||
}
|
||||
|
||||
default Map<Integer, String> nativeQueryIntStrMap(String sql, Map<String, Object> params) {
|
||||
return nativeQueryMap(Integer.class, String.class, sql, params);
|
||||
}
|
||||
|
||||
//----------------------------- JavaBean -----------------------------
|
||||
default int nativeUpdate(String sql, Serializable bean) {
|
||||
return nativeUpdate(sql, (Map<String, Object>) Reproduce.copy(HashMap.class, bean));
|
||||
}
|
||||
|
||||
default <V> V nativeQuery(String sql, Function<DataResultSet, V> handler, Serializable bean) {
|
||||
return nativeQuery(sql, null, handler, (Map<String, Object>) Reproduce.copy(HashMap.class, bean));
|
||||
}
|
||||
|
||||
default <V> V nativeQueryOne(Class<V> type, String sql, Serializable bean) {
|
||||
return nativeQueryOne(type, sql, (Map<String, Object>) Reproduce.copy(HashMap.class, bean));
|
||||
}
|
||||
|
||||
default <V> List<V> nativeQueryList(Class<V> type, String sql, Serializable bean) {
|
||||
return nativeQueryList(type, sql, (Map<String, Object>) Reproduce.copy(HashMap.class, bean));
|
||||
}
|
||||
|
||||
default <K, V> Map<K, V> nativeQueryMap(Class<K> keyType, Class<V> valType, String sql, Serializable bean) {
|
||||
return nativeQueryMap(keyType, valType, sql, (Map<String, Object>) Reproduce.copy(HashMap.class, bean));
|
||||
}
|
||||
|
||||
default Map<String, String> nativeQueryStrStrMap(String sql, Serializable bean) {
|
||||
return nativeQueryMap(String.class, String.class, sql, (Map<String, Object>) Reproduce.copy(HashMap.class, bean));
|
||||
}
|
||||
|
||||
default Map<Integer, String> nativeQueryIntStrMap(String sql, Serializable bean) {
|
||||
return nativeQueryMap(Integer.class, String.class, sql, (Map<String, Object>) Reproduce.copy(HashMap.class, bean));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -495,8 +495,8 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
}
|
||||
if (express == FV_MOD || express == FV_DIV) {
|
||||
FilterValue fv = (FilterValue) val0;
|
||||
return new StringBuilder().append(info.getSQLColumn(talis, column)).append(' ').append(express.value()).append(' ').append(fv.getFirst())
|
||||
.append(' ').append(fv.getExpress().value()).append(' ').append(fv.getSecond());
|
||||
return new StringBuilder().append(info.getSQLColumn(talis, column)).append(' ').append(express.value()).append(' ').append(fv.getLeft())
|
||||
.append(' ').append(fv.getExpress().value()).append(' ').append(fv.getRight());
|
||||
}
|
||||
final boolean fk = (val0 instanceof FilterKey);
|
||||
CharSequence val = fk ? info.getSQLColumn(talis, ((FilterKey) val0).getColumn()) : formatToString(express, info.getSQLValue(column, (Serializable) val0));
|
||||
@@ -1132,12 +1132,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) == fv0.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getLeft().longValue()) == fv0.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond();
|
||||
return field + " " + express.value() + " " + fv0.getLeft() + " " + fv0.getExpress().value() + " " + fv0.getRight();
|
||||
}
|
||||
};
|
||||
case NOTEQUAL:
|
||||
@@ -1145,12 +1145,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) != fv0.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getLeft().longValue()) != fv0.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond();
|
||||
return field + " " + express.value() + " " + fv0.getLeft() + " " + fv0.getExpress().value() + " " + fv0.getRight();
|
||||
}
|
||||
};
|
||||
case GREATERTHAN:
|
||||
@@ -1158,12 +1158,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) > fv0.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getLeft().longValue()) > fv0.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond();
|
||||
return field + " " + express.value() + " " + fv0.getLeft() + " " + fv0.getExpress().value() + " " + fv0.getRight();
|
||||
}
|
||||
};
|
||||
case LESSTHAN:
|
||||
@@ -1171,12 +1171,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) < fv0.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getLeft().longValue()) < fv0.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond();
|
||||
return field + " " + express.value() + " " + fv0.getLeft() + " " + fv0.getExpress().value() + " " + fv0.getRight();
|
||||
}
|
||||
};
|
||||
case GREATERTHANOREQUALTO:
|
||||
@@ -1184,12 +1184,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) >= fv0.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getLeft().longValue()) >= fv0.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond();
|
||||
return field + " " + express.value() + " " + fv0.getLeft() + " " + fv0.getExpress().value() + " " + fv0.getRight();
|
||||
}
|
||||
};
|
||||
case LESSTHANOREQUALTO:
|
||||
@@ -1197,12 +1197,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) <= fv0.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() % fv0.getLeft().longValue()) <= fv0.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond();
|
||||
return field + " " + express.value() + " " + fv0.getLeft() + " " + fv0.getExpress().value() + " " + fv0.getRight();
|
||||
}
|
||||
};
|
||||
default:
|
||||
@@ -1216,12 +1216,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) == fv1.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getLeft().longValue()) == fv1.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond();
|
||||
return field + " " + express.value() + " " + fv1.getLeft() + " " + fv1.getExpress().value() + " " + fv1.getRight();
|
||||
}
|
||||
};
|
||||
case NOTEQUAL:
|
||||
@@ -1229,12 +1229,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) != fv1.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getLeft().longValue()) != fv1.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond();
|
||||
return field + " " + express.value() + " " + fv1.getLeft() + " " + fv1.getExpress().value() + " " + fv1.getRight();
|
||||
}
|
||||
};
|
||||
case GREATERTHAN:
|
||||
@@ -1242,12 +1242,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) > fv1.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getLeft().longValue()) > fv1.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond();
|
||||
return field + " " + express.value() + " " + fv1.getLeft() + " " + fv1.getExpress().value() + " " + fv1.getRight();
|
||||
}
|
||||
};
|
||||
case LESSTHAN:
|
||||
@@ -1255,12 +1255,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) < fv1.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getLeft().longValue()) < fv1.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond();
|
||||
return field + " " + express.value() + " " + fv1.getLeft() + " " + fv1.getExpress().value() + " " + fv1.getRight();
|
||||
}
|
||||
};
|
||||
case GREATERTHANOREQUALTO:
|
||||
@@ -1268,12 +1268,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) >= fv1.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getLeft().longValue()) >= fv1.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond();
|
||||
return field + " " + express.value() + " " + fv1.getLeft() + " " + fv1.getExpress().value() + " " + fv1.getRight();
|
||||
}
|
||||
};
|
||||
case LESSTHANOREQUALTO:
|
||||
@@ -1281,12 +1281,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) <= fv1.getSecond().longValue();
|
||||
return (((Number) attr.get(t)).longValue() / fv1.getLeft().longValue()) <= fv1.getRight().longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond();
|
||||
return field + " " + express.value() + " " + fv1.getLeft() + " " + fv1.getExpress().value() + " " + fv1.getRight();
|
||||
}
|
||||
};
|
||||
default:
|
||||
|
||||
@@ -19,37 +19,37 @@ import org.redkale.convert.ConvertColumn;
|
||||
public class FilterValue implements java.io.Serializable {
|
||||
|
||||
@ConvertColumn(index = 1)
|
||||
private Number first;
|
||||
private Number left;
|
||||
|
||||
@ConvertColumn(index = 2)
|
||||
private FilterExpress express;
|
||||
|
||||
@ConvertColumn(index = 3)
|
||||
private Number second;
|
||||
private Number right;
|
||||
|
||||
public FilterValue() {
|
||||
}
|
||||
|
||||
public FilterValue(Number first, Number second) {
|
||||
this(first, FilterExpress.EQUAL, second);
|
||||
public FilterValue(Number left, Number right) {
|
||||
this(left, FilterExpress.EQUAL, right);
|
||||
}
|
||||
|
||||
public FilterValue(Number first, FilterExpress express) {
|
||||
this(first, express, 0);
|
||||
public FilterValue(Number left, FilterExpress express) {
|
||||
this(left, express, 0);
|
||||
}
|
||||
|
||||
public FilterValue(Number first, FilterExpress express, Number second) {
|
||||
this.first = first;
|
||||
public FilterValue(Number left, FilterExpress express, Number right) {
|
||||
this.left = left;
|
||||
this.express = express;
|
||||
this.second = second;
|
||||
this.right = right;
|
||||
}
|
||||
|
||||
public Number getFirst() {
|
||||
return first == null ? 0 : first;
|
||||
public Number getLeft() {
|
||||
return left == null ? 0 : left;
|
||||
}
|
||||
|
||||
public void setFirst(Number first) {
|
||||
this.first = first;
|
||||
public void setLeft(Number left) {
|
||||
this.left = left;
|
||||
}
|
||||
|
||||
public FilterExpress getExpress() {
|
||||
@@ -60,16 +60,16 @@ public class FilterValue implements java.io.Serializable {
|
||||
this.express = express;
|
||||
}
|
||||
|
||||
public Number getSecond() {
|
||||
return second == null ? 0 : second;
|
||||
public Number getRight() {
|
||||
return right == null ? 0 : right;
|
||||
}
|
||||
|
||||
public void setSecond(Number second) {
|
||||
this.second = second;
|
||||
public void setRight(Number right) {
|
||||
this.right = right;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return FilterValue.class.getSimpleName() + "[first=" + getFirst() + ", express=" + getExpress() + ", second=" + getSecond() + "]";
|
||||
return FilterValue.class.getSimpleName() + "[left=" + getLeft() + ", express=" + getExpress() + ", right=" + getRight() + "]";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user