【问题标题】:Hibernate query uncommitted dataHibernate查询未提交的数据
【发布时间】:2015-11-16 17:20:47
【问题描述】:

我创建了尚未提交的对象;在我的代码中,我需要查询这些对象。发生的情况是查询命中数据库并且它总是返回空结果。 如何让我的查询先访问缓存然后访问数据库?

【问题讨论】:

标签: hibernate


【解决方案1】:
MyObject myObject = session.get(MyObject.class, identifier);

取自另一篇文章,强调我的。

get() 方法很特殊,因为标识符唯一地标识了一个类的单个实例。因此,应用程序通常使用标识符作为持久对象的方便句柄。按标识符检索可以在检索对象时使用缓存,如果对象已被缓存,则避免数据库命中。

如果您希望进行批量选择/标准而不是单项选择,那么您需要在执行查询之前提交对象。无法通过查询混合和匹配缓存和数据库中的对象。

【讨论】:

  • 我实际上找到了一种在提交数据之前查询数据的方法。我只是刷新了会话(session.flush())并解决了我的问题。有关信息,刷新过程是“会话将执行同步 JDBC 连接状态与内存中保存的对象状态所需的 SQL 语句”docs.jboss.org/hibernate/core/3.3/reference/en/html/…
猜你喜欢
  • 1970-01-01
  • 2011-12-14
  • 2015-02-05
  • 1970-01-01
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多