【问题标题】:Will Hibernates Session.get() hit the database both times or only one time?Hibernates Session.get() 会两次还是仅一次访问数据库?
【发布时间】:2019-06-08 07:33:04
【问题描述】:

当我们使用 Hibernate 的 Session.get() 两次时。

示例:-

session.get();
session.get();

【问题讨论】:

  • 当您提出问题时,请将解释的问题与您尝试过的代码一起提出。

标签: java hibernate jpa orm


【解决方案1】:

这取决于..

1)如果为特定实体打开二级缓存并且之前已检索过,则不会对数据库造成任何影响。

2) 如果两个get() 不在同一个持久性上下文中(通常意味着在同一个事务中),那么两次都会对数据库造成影响。

3) 如果两者都在同一个持久化上下文中,那么第一个get() 将访问数据库,而第二个将只查询持久化上下文而不需要查询数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 2012-11-06
    • 1970-01-01
    • 2017-10-26
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多