我有一个用例做分页。当然,当用户四处走动时,它会再次点击相同的页面。我已经有了页面的主键集。
此外,类似的搜索将命中一些已经加载到一级和二级缓存中的实体。
当我对一批主键进行查询时,Hibernate 不够聪明,无法避免在缓存命中时调用数据库。所以我想通过首先对一级和二级缓存使用低级 API 来解决这个问题。
因此,例如,如果我想加载以下主键:1、2、3
如果 2 已经在一级缓存中,我只想用 1 和 3 调用数据库。
所以我正在寻找一个像 session.peek(MyEntity.class, 2) 这样的 API,如果没有找到 peek 函数将返回 null ,或者如果在一级或二级缓存中找到实体,则返回实体。
如果存在的话,我可以从更低级别的 API 创建这个函数。