From 30874394afe57da5f8582d62d7e2140a7a70d2be Mon Sep 17 00:00:00 2001 From: RedKale <22250530@qq.com> Date: Tue, 12 Apr 2016 20:46:18 +0800 Subject: [PATCH] --- src/org/redkale/source/DataDefaultSource.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/org/redkale/source/DataDefaultSource.java b/src/org/redkale/source/DataDefaultSource.java index 12f131717..c66c9e516 100644 --- a/src/org/redkale/source/DataDefaultSource.java +++ b/src/org/redkale/source/DataDefaultSource.java @@ -1164,7 +1164,10 @@ public final class DataDefaultSource implements DataSource, Function T find(Class clazz, final SelectColumn selects, Serializable pk) { final EntityInfo info = loadEntityInfo(clazz); final EntityCache cache = info.getCache(); - if (cache != null && cache.isFullLoaded()) return cache.find(selects, pk); + if (cache != null) { + T rs = cache.find(selects, pk); + if (cache.isFullLoaded() || rs != null) return rs; + } final Connection conn = createReadSQLConnection(); try { @@ -1273,7 +1276,10 @@ public final class DataDefaultSource implements DataSource, Function boolean exists(Class clazz, Serializable pk) { final EntityInfo info = loadEntityInfo(clazz); final EntityCache cache = info.getCache(); - if (cache != null && cache.isFullLoaded()) return cache.exists(pk); + if (cache != null) { + boolean rs = cache.exists(pk); + if (rs || cache.isFullLoaded()) return rs; + } final Connection conn = createReadSQLConnection(); try { @@ -1675,11 +1681,11 @@ public final class DataDefaultSource implements DataSource, Function Sheet querySheet(final boolean readcache, final boolean needtotal, final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node) { final EntityInfo info = loadEntityInfo(clazz); final EntityCache cache = info.getCache(); - if (readcache && cache != null) { + if (readcache && cache != null && cache.isFullLoaded()) { if (node == null || node.isCacheUseable(this)) { if (debug.get() && info.isLoggable(Level.FINEST)) logger.finest(clazz.getSimpleName() + " cache query predicate = " + (node == null ? null : node.createPredicate(cache))); Sheet sheet = cache.querySheet(needtotal, selects, flipper, node); - if (!sheet.isEmpty() || info.isVirtualEntity() || cache.isFullLoaded()) return sheet; + if (!sheet.isEmpty() || info.isVirtualEntity()) return sheet; } } final Connection conn = createReadSQLConnection();