【发布时间】:2015-11-16 17:20:47
【问题描述】:
我创建了尚未提交的对象;在我的代码中,我需要查询这些对象。发生的情况是查询命中数据库并且它总是返回空结果。 如何让我的查询先访问缓存然后访问数据库?
【问题讨论】:
标签: hibernate
我创建了尚未提交的对象;在我的代码中,我需要查询这些对象。发生的情况是查询命中数据库并且它总是返回空结果。 如何让我的查询先访问缓存然后访问数据库?
【问题讨论】:
标签: hibernate
MyObject myObject = session.get(MyObject.class, identifier);
取自另一篇文章,强调我的。
get() 方法很特殊,因为标识符唯一地标识了一个类的单个实例。因此,应用程序通常使用标识符作为持久对象的方便句柄。按标识符检索可以在检索对象时使用缓存,如果对象已被缓存,则避免数据库命中。
如果您希望进行批量选择/标准而不是单项选择,那么您需要在执行查询之前提交对象。无法通过查询混合和匹配缓存和数据库中的对象。
【讨论】: