首页 > 解决方案 > Hibernates Session.get() 会两次还是仅一次访问数据库?

问题描述

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

例子 :-

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

标签: javahibernatejpaorm

解决方案


这取决于..

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

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

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


推荐阅读