From 9f3d2ff874e715564fea518a6a1ebfd7075316c0 Mon Sep 17 00:00:00 2001 From: kamhung <22250530@qq.com> Date: Wed, 25 Nov 2015 17:24:19 +0800 Subject: [PATCH] --- .../wentch/redkale/source/DataDefaultSource.java | 4 ++-- src/com/wentch/redkale/source/EntityCache.java | 13 ++++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/com/wentch/redkale/source/DataDefaultSource.java b/src/com/wentch/redkale/source/DataDefaultSource.java index 83ffb8303..3dfb10200 100644 --- a/src/com/wentch/redkale/source/DataDefaultSource.java +++ b/src/com/wentch/redkale/source/DataDefaultSource.java @@ -1029,8 +1029,8 @@ public final class DataDefaultSource implements DataSource, Nameable { //--------------------------------------------------- final EntityCache cache = info.getCache(); if (cache == null) return; - cache.update(value, attrs); - if (cacheListener != null) cacheListener.updateCache(clazz, value); + T rs = cache.update(value, attrs); + if (cacheListener != null) cacheListener.updateCache(clazz, rs); } catch (SQLException e) { throw new RuntimeException(e); } diff --git a/src/com/wentch/redkale/source/EntityCache.java b/src/com/wentch/redkale/source/EntityCache.java index 2b59a69ea..33a9eb28f 100644 --- a/src/com/wentch/redkale/source/EntityCache.java +++ b/src/com/wentch/redkale/source/EntityCache.java @@ -404,13 +404,14 @@ public final class EntityCache { this.reproduce.copy(rs, value); } - public void update(final T value, Collection> attrs) { - if (value == null) return; + public T update(final T value, Collection> attrs) { + if (value == null) return value; T rs = this.map.get(this.primary.get(value)); - if (rs == null) return; + if (rs == null) return rs; for (Attribute attr : attrs) { attr.set(rs, attr.get(value)); } + return rs; } public T update(final Serializable id, Attribute attr, final V fieldValue) { @@ -672,6 +673,12 @@ public final class EntityCache { @Override public boolean test(FilterNode node) { + if (node == null || node.isOr()) return false; + if (!attribute.field().equals(node.column)) return false; + if (node.nodes == null) return true; + for (FilterNode n : node.nodes) { + if (!test(n)) return false; + } return true; } };