我应该如何处理 Siesta 中的部分 EntityCache 命中?

How should I handle partial EntityCache hits in Siesta?

我有一个端点,我可以在其中请求使用 Siesta 查询的多条数据(例如 https://example.com/things?ids=1,2,3)。如果我只缓存了一些 things ,我试图弄清楚我的持久实体缓存的正确行为。因此,如果我有事物 1 和事物 2,但没有缓存事物 3,我想 return 部分命中并让 Siesta 也使用原始 URL 查询我的服务器。然而,我的理解是,如果 EntityCache.readEntity returns 任何东西,那么 Siesta 会假定查询已完全满足,并且不会继续进行网络请求。

有什么好办法实现部分命中,还是需要从readEntityreturnnil然后等待服务器响应?

让你的缓存 return 具有 Entity.timestamp 的部分内容在遥远的过去。 (使用零没问题。)这将导致 1,2 部分内容在启动时和离线时立即出现,但 loadIfNeeded() 会认为该内容已过时,因此仍会触发对 1,2,3 的请求。