From 672b5a7cf5f2f2cb050c629683f358358b3122ce Mon Sep 17 00:00:00 2001 From: redkale Date: Sun, 8 Sep 2024 02:06:14 +0800 Subject: [PATCH] EntityInfo --- .../java/org/redkale/source/EntityInfo.java | 24 ++++--------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/redkale/source/EntityInfo.java b/src/main/java/org/redkale/source/EntityInfo.java index bc1c9bbd5..cf91306a7 100644 --- a/src/main/java/org/redkale/source/EntityInfo.java +++ b/src/main/java/org/redkale/source/EntityInfo.java @@ -37,8 +37,6 @@ public final class EntityInfo { // 全局静态资源 private static final ConcurrentHashMap entityInfos = new ConcurrentHashMap<>(); - private static final ReentrantLock infosLock = new ReentrantLock(); - // 日志 private static final Logger logger = Logger.getLogger(EntityInfo.class.getSimpleName()); @@ -218,27 +216,13 @@ public final class EntityInfo { final Properties conf, DataSource source, BiFunction> fullloader) { - EntityInfo rs = entityInfos.get(clazz); - if (rs != null && (rs.cache == null || rs.cache.isFullLoaded())) { - return rs; - } - infosLock.lock(); - try { - rs = entityInfos.get(clazz); - if (rs == null) { - rs = new EntityInfo(clazz, cacheForbidden, conf, source, fullloader); - entityInfos.put(clazz, rs); - } - if (rs.cache != null && !rs.isCacheFullLoaded()) { - if (fullloader == null) { - throw new IllegalArgumentException(clazz.getName() + " auto loader is illegal"); - } + return entityInfos.computeIfAbsent(clazz, clz -> { + EntityInfo rs = new EntityInfo(clz, cacheForbidden, conf, source, fullloader); + if (rs.cache != null) { rs.cache.fullLoadAsync(); } return rs; - } finally { - infosLock.unlock(); - } + }); } /**