From 5f75c53ef2e361590a2331443d17d16104f4dcff Mon Sep 17 00:00:00 2001 From: godotg Date: Thu, 25 Jan 2024 19:32:32 +0800 Subject: [PATCH] feat[orm]: unsafe updates entity immediatly --- orm/src/main/java/com/zfoo/orm/cache/EntityCache.java | 10 ++++++++++ orm/src/main/java/com/zfoo/orm/cache/IEntityCache.java | 5 +++++ 2 files changed, 15 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 15182bde..c287feb0 100644 --- a/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java +++ b/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java @@ -185,6 +185,16 @@ public class EntityCache, E extends IEntity> imple currentPnode.setWriteToDbTime(now); } + @Override + public void updateUnsafeNow(E entity) { + updateUnsafe(entity); + OrmContext.getAccessor().update(entity); + var currentPnode = cache.getIfPresent(entity.id()); + var now = TimeUtils.now(); + currentPnode.setModifiedTime(now); + currentPnode.setWriteToDbTime(now); + } + @Override public void invalidate(PK pk) { // 游戏业务中,操作最频繁的是update,不是insert,delete,query diff --git a/orm/src/main/java/com/zfoo/orm/cache/IEntityCache.java b/orm/src/main/java/com/zfoo/orm/cache/IEntityCache.java index d1289802..a516de63 100644 --- a/orm/src/main/java/com/zfoo/orm/cache/IEntityCache.java +++ b/orm/src/main/java/com/zfoo/orm/cache/IEntityCache.java @@ -44,6 +44,11 @@ public interface IEntityCache, E extends IEntity> */ void updateNow(E entity); + /** + * 同updateNow(),不会校验更新的线程是否一致 + */ + void updateUnsafeNow(E entity); + /** * 不会删除数据库中的数据,只会删除缓存数据 *