From 5be1a2ccb8c408b2689da64509521c4b9f1bb929 Mon Sep 17 00:00:00 2001 From: godotg Date: Wed, 20 Mar 2024 11:30:20 +0800 Subject: [PATCH] chore[doc]: update doc --- orm/src/main/java/com/zfoo/orm/cache/EntityCache.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java b/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java index df3caeed..0d900a6b 100644 --- a/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java +++ b/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java @@ -83,6 +83,7 @@ public class EntityCache, E extends IEntity> imple : Filters.eq("_id", entity.id()); var result = collection.replaceOne(filter, entity); if (result.getModifiedCount() <= 0) { + // 移除缓存时,更新数据库中的实体文档异常 logger.error("onRemoval(): update entity to db failed when remove [{}] [pk:{}] by [removalCause:{}]", entityClass.getSimpleName(), entity.id(), removalCause); } } @@ -129,6 +130,7 @@ public class EntityCache, E extends IEntity> imple logger.error("load(): [{}] load [pk:{}] error", entityDef.getClazz().getSimpleName(), pk, t); } + // 数据库无法加载缓存,返回默认值 logger.warn("[{}] can not load [pk:{}] and use default entity to replace it", entityDef.getClazz().getSimpleName(), pk); @SuppressWarnings("unchecked") var entity = (E) entityDef.newEntity(pk); @@ -161,6 +163,7 @@ public class EntityCache, E extends IEntity> imple cachePnode.setThreadId(currentThreadId); } else { var pnodeThread = ThreadUtils.findThread(pnodeThreadId); + // 有并发写风险,第一次更新文档的线程和第2次更新更新文档的线程不相等 if (pnodeThread == null) { logger.warn("[{}][id:{}] concurrent write warning, first update [threadId:{}], second update [threadId:{}]", entity.getClass().getSimpleName(), entity.id(), pnodeThreadId, currentThreadId); } else {