我创建了尚未提交的对象;在我的代码中,我需要查询这些对象。发生的事情是查询命中数据库并且它总是返回空结果。 如何让我的查询先跟随缓存而不是数据库?
答案 0 :(得分:0)
MyObject myObject = session.get(MyObject.class, identifier);
取自另一篇文章,强调我的。
get()方法很特殊,因为标识符唯一地标识了类的单个实例。因此,应用程序通常将标识符用作持久对象的方便句柄。按标识符检索可以在检索对象时使用缓存,如果对象已经缓存,则避免数据库命中。
如果您正在寻找批量选择/标准而不是单一条目选择,那么您需要在执行查询之前提交对象。无法通过查询将缓存和数据库中的对象混合和匹配。