This commit is contained in:
@@ -43,6 +43,8 @@ public enum FilterExpress {
|
|||||||
NOTIN("NOT IN"),
|
NOTIN("NOT IN"),
|
||||||
ISNULL("IS NULL"),
|
ISNULL("IS NULL"),
|
||||||
ISNOTNULL("IS NOT NULL"),
|
ISNOTNULL("IS NOT NULL"),
|
||||||
|
ISEMPTY("="),//值为空
|
||||||
|
ISNOTEMPTY("<>"), //值不为空
|
||||||
OPAND("&"), //与运算 > 0
|
OPAND("&"), //与运算 > 0
|
||||||
OPOR("|"), //或运算 > 0
|
OPOR("|"), //或运算 > 0
|
||||||
OPANDNO("&"), //与运算 == 0
|
OPANDNO("&"), //与运算 == 0
|
||||||
|
|||||||
@@ -344,6 +344,9 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
|||||||
if (express == ISNULL || express == ISNOTNULL) {
|
if (express == ISNULL || express == ISNOTNULL) {
|
||||||
return new StringBuilder().append(info.getSQLColumn(talis, column)).append(' ').append(express.value());
|
return new StringBuilder().append(info.getSQLColumn(talis, column)).append(' ').append(express.value());
|
||||||
}
|
}
|
||||||
|
if (express == ISEMPTY || express == ISNOTEMPTY) {
|
||||||
|
return new StringBuilder().append(info.getSQLColumn(talis, column)).append(' ').append(express.value()).append(" ''");
|
||||||
|
}
|
||||||
if (val0 == null) return null;
|
if (val0 == null) return null;
|
||||||
if (express == FV_MOD || express == FV_DIV) {
|
if (express == FV_MOD || express == FV_DIV) {
|
||||||
FilterValue fv = (FilterValue) val0;
|
FilterValue fv = (FilterValue) val0;
|
||||||
@@ -585,6 +588,32 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
|||||||
return field + " != null";
|
return field + " != null";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
if (express == ISEMPTY) return new Predicate<T>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean test(T t) {
|
||||||
|
Object v = attr.get(t);
|
||||||
|
return v == null || v.toString().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return field + " = ''";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if (express == ISNOTEMPTY) return new Predicate<T>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean test(T t) {
|
||||||
|
Object v = attr.get(t);
|
||||||
|
return v != null && !v.toString().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return field + " != ''";
|
||||||
|
}
|
||||||
|
};
|
||||||
if (val0 == null) return null;
|
if (val0 == null) return null;
|
||||||
|
|
||||||
final Class atype = attr.type();
|
final Class atype = attr.type();
|
||||||
@@ -1737,6 +1766,8 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则
|
|||||||
String col = prefix == null ? column : (prefix + "." + column);
|
String col = prefix == null ? column : (prefix + "." + column);
|
||||||
if (express == ISNULL || express == ISNOTNULL) {
|
if (express == ISNULL || express == ISNOTNULL) {
|
||||||
sb.append(col).append(' ').append(express.value());
|
sb.append(col).append(' ').append(express.value());
|
||||||
|
} else if (express == ISEMPTY || express == ISNOTEMPTY) {
|
||||||
|
sb.append(col).append(' ').append(express.value()).append(" ''");
|
||||||
} else if (ev != null) {
|
} else if (ev != null) {
|
||||||
boolean lower = (express == IGNORECASELIKE || express == IGNORECASENOTLIKE || express == IGNORECASECONTAIN || express == IGNORECASENOTCONTAIN);
|
boolean lower = (express == IGNORECASELIKE || express == IGNORECASENOTLIKE || express == IGNORECASECONTAIN || express == IGNORECASENOTCONTAIN);
|
||||||
sb.append(lower ? ("LOWER(" + col + ')') : col).append(' ').append(express.value()).append(' ').append(formatToString(express, ev));
|
sb.append(lower ? ("LOWER(" + col + ')') : col).append(' ').append(express.value()).append(' ').append(formatToString(express, ev));
|
||||||
|
|||||||
@@ -353,6 +353,8 @@ public final class FilterNodeBean<T extends FilterBean> implements Comparable<Fi
|
|||||||
String col = prefix == null ? column : (prefix + "." + column);
|
String col = prefix == null ? column : (prefix + "." + column);
|
||||||
if (express == ISNULL || express == ISNOTNULL) {
|
if (express == ISNULL || express == ISNOTNULL) {
|
||||||
sb.append(col).append(' ').append(express.value());
|
sb.append(col).append(' ').append(express.value());
|
||||||
|
} else if (express == ISEMPTY || express == ISNOTEMPTY) {
|
||||||
|
sb.append(col).append(' ').append(express.value()).append(" ''");
|
||||||
} else {
|
} else {
|
||||||
boolean lower = (express == IGNORECASEEQUAL || express == IGNORECASENOTEQUAL || express == IGNORECASELIKE
|
boolean lower = (express == IGNORECASEEQUAL || express == IGNORECASENOTEQUAL || express == IGNORECASELIKE
|
||||||
|| express == IGNORECASENOTLIKE || express == IGNORECASECONTAIN || express == IGNORECASENOTCONTAIN);
|
|| express == IGNORECASENOTLIKE || express == IGNORECASECONTAIN || express == IGNORECASENOTCONTAIN);
|
||||||
|
|||||||
Reference in New Issue
Block a user