diff --git a/src/com/wentch/redkale/source/FilterNode.java b/src/com/wentch/redkale/source/FilterNode.java index 8e4cb6fca..c1b8f60e1 100644 --- a/src/com/wentch/redkale/source/FilterNode.java +++ b/src/com/wentch/redkale/source/FilterNode.java @@ -82,7 +82,9 @@ public abstract class FilterNode { protected final Predicate createFilterPredicate(final EntityInfo info, Object bean) { if (info == null) return null; - Predicate filter = createFilterPredicate(info.getAttribute(column), getValue(bean)); + final Serializable val = getValue(bean); + if (val == null && express != ISNULL && express != ISNOTNULL) return null; + Predicate filter = createFilterPredicate(info.getAttribute(column), val); if (nodes == null) return filter; for (FilterNode node : this.nodes) { Predicate f = node.createFilterPredicate(info, bean); @@ -92,9 +94,8 @@ public abstract class FilterNode { return filter; } - protected final Predicate createFilterPredicate(final Attribute attr, final Serializable val) { + private Predicate createFilterPredicate(final Attribute attr, final Serializable val) { if (attr == null) return null; - if (val == null && express != ISNULL && express != ISNOTNULL) return null; switch (express) { case EQUAL: return (T t) -> val.equals(attr.get(t)); case NOTEQUAL: return (T t) -> !val.equals(attr.get(t));