From 1af231471629293611866cad59a138f01e82510c Mon Sep 17 00:00:00 2001 From: godotg Date: Tue, 2 Jul 2024 11:40:09 +0800 Subject: [PATCH] chore[orm]: recommend using CopyOnWriteArrayList or ConcurrentHashMap in @EntityCache --- .../main/java/com/zfoo/orm/manager/OrmManager.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java index 98c83f50..495ba764 100644 --- a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java +++ b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java @@ -305,6 +305,18 @@ public class OrmManager implements IOrmManager { var cacheDef = parserEntityDef(entityClass); cacheDefMap.putIfAbsent(entityClass, cacheDef); } + + var unsafeList = cacheDefMap.entrySet() + .stream() + .filter(it -> !it.getValue().isThreadSafe()) + .filter(it -> it.getKey().isAnnotationPresent(com.zfoo.orm.anno.EntityCache.class)) + .map(it -> it.getKey().getSimpleName()) + .toList(); + if (CollectionUtils.isNotEmpty(unsafeList)) { + logger.info("In order to improve performance, highly recommend using CopyOnWriteArrayList or ConcurrentHashMap in @EntityCache:[{}]" + , StringUtils.joinWith(", ", unsafeList.toArray())); + } + return cacheDefMap; }