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 f7fe9380..51a94b90 100644 --- a/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java +++ b/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java @@ -168,6 +168,16 @@ public class EntityCache, E extends IEntity> imple currentPnode.setModifiedTime(TimeUtils.now() + 100); } + @Override + public void updateNow(E entity) { + update(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 9a8150ac..5388bbbf 100644 --- a/orm/src/main/java/com/zfoo/orm/cache/IEntityCache.java +++ b/orm/src/main/java/com/zfoo/orm/cache/IEntityCache.java @@ -32,6 +32,11 @@ public interface IEntityCache, E extends IEntity> */ void update(E entity); + /** + * 更新缓存中的数据,立刻写入到数据库 + */ + void updateNow(E entity); + /** * 不会删除数据库中的数据,只会删除缓存数据 *