diff --git a/src/main/java/org/redkale/persistence/Cacheable.java b/src/main/java/org/redkale/persistence/Cacheable.java index eb128b1c9..d5514361b 100644 --- a/src/main/java/org/redkale/persistence/Cacheable.java +++ b/src/main/java/org/redkale/persistence/Cacheable.java @@ -15,9 +15,9 @@ ***************************************************************************** */ package org.redkale.persistence; +import java.lang.annotation.*; import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import java.lang.annotation.*; /** * Specifies whether an entity should be cached if caching is enabled @@ -64,6 +64,6 @@ public @interface Cacheable { * * @return boolean */ - boolean continuousid() default false; + boolean sequent() default false; } diff --git a/src/main/java/org/redkale/source/CacheMemorySource.java b/src/main/java/org/redkale/source/CacheMemorySource.java index 902fb4e91..1907b19da 100644 --- a/src/main/java/org/redkale/source/CacheMemorySource.java +++ b/src/main/java/org/redkale/source/CacheMemorySource.java @@ -15,6 +15,7 @@ import java.util.function.*; import java.util.logging.*; import java.util.regex.Pattern; import java.util.stream.Collectors; +import java.util.stream.Stream; import org.redkale.annotation.*; import org.redkale.annotation.AutoLoad; import org.redkale.annotation.ResourceListener; @@ -818,7 +819,8 @@ public final class CacheMemorySource extends AbstractCacheSource { if (entry == null) { return new ArrayList(); } else { - return new ArrayList(entry.mapValue.values().stream().map(v -> Utility.convertValue(type, v)).toList()); + Stream stream = entry.mapValue.values().stream().map(v -> Utility.convertValue(type, v)); + return new ArrayList(stream.collect(Collectors.toList())); } }); } diff --git a/src/main/java/org/redkale/source/EntityCache.java b/src/main/java/org/redkale/source/EntityCache.java index 532a8ea63..ae6cef65e 100644 --- a/src/main/java/org/redkale/source/EntityCache.java +++ b/src/main/java/org/redkale/source/EntityCache.java @@ -38,7 +38,7 @@ public final class EntityCache { // CopyOnWriteArrayList 插入慢、查询快; 10w数据插入需要3.2秒; ConcurrentLinkedQueue 插入快、查询慢;10w数据查询需要 0.062秒, 查询慢40%; private Collection list = new ConcurrentLinkedQueue(); - //continuousid=true此字段值才有效 + //sequent=true此字段值才有效 private T[] array; //Flipper.sort转换成Comparator的缓存 @@ -79,7 +79,7 @@ public final class EntityCache { final int interval; //@Cacheable的主键字段是否同时满足: 1、类型为int;2、主键值可为数组下标;3、记录总数有限; - final boolean continuousid; + final boolean sequent; //@Cacheable的定时器 private ScheduledThreadPoolExecutor scheduler; @@ -87,13 +87,13 @@ public final class EntityCache { private CompletableFuture> loadFuture; public EntityCache(final EntityInfo info, final Cacheable c) { - this(info, c != null ? c.interval() : 0, c != null && c.direct(), c != null && c.continuousid()); + this(info, c != null ? c.interval() : 0, c != null && c.direct(), c != null && c.sequent()); } EntityCache(final EntityInfo info, final int cacheInterval, final boolean cacheDirect, final boolean cacheContinuousid) { this.info = info; this.interval = cacheInterval < 0 ? 0 : cacheInterval; - this.continuousid = cacheContinuousid && info.getPrimary().type() == int.class; + this.sequent = cacheContinuousid && info.getPrimary().type() == int.class; this.type = info.getType(); this.arrayer = info.getArrayer(); this.creator = info.getCreator(); @@ -213,7 +213,7 @@ public final class EntityCache { } private T[] transferArray(List all) { - if (continuousid && all != null && !all.isEmpty()) { + if (sequent && all != null && !all.isEmpty()) { try { int maxid = all.stream().mapToInt(v -> v == null ? 0 : (Integer) primary.get(v)).max().orElse(0); T[] result = arrayer.apply(maxid + 1); @@ -286,7 +286,7 @@ public final class EntityCache { return result; } } - if (continuousid && array != null) { + if (sequent && array != null) { T[] array0 = array; T[] result = arrayer.apply(pks.length); if (needCopy) { @@ -805,7 +805,7 @@ public final class EntityCache { T old = this.map.putIfAbsent(this.primary.get(rs), rs); if (old == null) { this.list.add(rs); - if (continuousid) { + if (sequent) { this.array = transferArray(new ArrayList<>(this.list)); } return 1; @@ -824,7 +824,7 @@ public final class EntityCache { return 0; } this.list.remove(rs); - if (continuousid) { + if (sequent) { this.array[(Integer) primary.get(rs)] = null; } return 1; @@ -853,7 +853,7 @@ public final class EntityCache { ids[++i] = this.primary.get(t); this.map.remove(ids[i]); this.list.remove(t); - if (continuousid) { + if (sequent) { this.array[(Integer) primary.get(t)] = null; } } diff --git a/src/main/java/org/redkale/source/EntityInfo.java b/src/main/java/org/redkale/source/EntityInfo.java index a69a44a68..eb2ab79ea 100644 --- a/src/main/java/org/redkale/source/EntityInfo.java +++ b/src/main/java/org/redkale/source/EntityInfo.java @@ -690,7 +690,7 @@ public final class EntityInfo { this.cache = new EntityCache<>(this, c1 == null ? (c2 == null ? 0 : c2.interval()) : c1.interval(), c1 == null ? (c2 == null ? false : c2.direct()) : c1.direct(), - c1 == null ? false : c1.continuousid()); + c1 == null ? false : c1.sequent()); } else { this.cache = null; }