diff --git a/src/main/java/org/redkale/source/AbstractDataSqlSource.java b/src/main/java/org/redkale/source/AbstractDataSqlSource.java index 84d540eaf..d44a30e45 100644 --- a/src/main/java/org/redkale/source/AbstractDataSqlSource.java +++ b/src/main/java/org/redkale/source/AbstractDataSqlSource.java @@ -3105,11 +3105,8 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource return info.getArrayer().apply(0); } final EntityCache cache = info.getCache(); - if (cache != null) { - T[] rs = selects == null ? cache.finds(pks) : cache.finds(selects, pks); - if (cache.isFullLoaded() || rs != null) { - return rs; - } + if (cache != null && cache.isFullLoaded()) { + return selects == null ? cache.finds(pks) : cache.finds(selects, pks); } return findsDBAsync(info, selects, pks).join(); } @@ -3121,11 +3118,8 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource return CompletableFuture.completedFuture(info.getArrayer().apply(0)); } final EntityCache cache = info.getCache(); - if (cache != null) { - T[] rs = selects == null ? cache.finds(pks) : cache.finds(selects, pks); - if (cache.isFullLoaded() || rs != null) { - return CompletableFuture.completedFuture(rs); - } + if (cache != null && cache.isFullLoaded()) { + return CompletableFuture.completedFuture(selects == null ? cache.finds(pks) : cache.finds(selects, pks)); } return findsDBAsync(info, selects, pks); } @@ -3511,11 +3505,8 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource public boolean exists(final Class clazz, final FilterNode node) { final EntityInfo info = loadEntityInfo(clazz); final EntityCache cache = info.getCache(); - if (cache != null) { - boolean rs = cache.exists(node); - if (rs || cache.isFullLoaded()) { - return rs; - } + if (cache != null && cache.isFullLoaded()) { + return cache.exists(node); } final String[] tables = info.getTables(node); String sql = existsSql(info, tables, node); @@ -3533,11 +3524,8 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource public CompletableFuture existsAsync(final Class clazz, final FilterNode node) { final EntityInfo info = loadEntityInfo(clazz); final EntityCache cache = info.getCache(); - if (cache != null) { - boolean rs = cache.exists(node); - if (rs || cache.isFullLoaded()) { - return CompletableFuture.completedFuture(rs); - } + if (cache != null && cache.isFullLoaded()) { + return CompletableFuture.completedFuture(cache.exists(node)); } final String[] tables = info.getTables(node); diff --git a/src/main/java/org/redkale/source/EntityCache.java b/src/main/java/org/redkale/source/EntityCache.java index be2e5a5d4..e037048b2 100644 --- a/src/main/java/org/redkale/source/EntityCache.java +++ b/src/main/java/org/redkale/source/EntityCache.java @@ -5,8 +5,6 @@ */ package org.redkale.source; -import static org.redkale.source.FilterFunc.*; - import java.io.Serializable; import java.util.*; import java.util.concurrent.*; @@ -16,6 +14,7 @@ import java.util.function.*; import java.util.logging.*; import java.util.stream.*; import org.redkale.persistence.*; +import static org.redkale.source.FilterFunc.*; import org.redkale.util.*; /** @@ -128,13 +127,6 @@ public final class EntityCache { }); } - public void fullLoad() { - CompletableFuture> future = fullLoadAsync(); - if (future != null) { - future.join(); - } - } - public CompletableFuture> fullLoadAsync() { if (this.fullloaded) { return this.loadFuture; @@ -1174,7 +1166,7 @@ public final class EntityCache { numb = numb.floatValue() + val.floatValue(); } else if (numb instanceof Double || val instanceof Double) { numb = numb.doubleValue() + val.doubleValue(); - } else { + } else if (val != null) { numb = numb.longValue() + val.longValue(); } } @@ -1187,7 +1179,7 @@ public final class EntityCache { numb = numb.floatValue() - val.floatValue(); } else if (numb instanceof Double || val instanceof Double) { numb = numb.doubleValue() - val.doubleValue(); - } else { + } else if (val != null) { numb = numb.longValue() - val.longValue(); } }