Hibernates Session.get()会两次还是仅一次访问数据库?

时间:2019-06-08 07:33:04

标签: java hibernate jpa orm

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

示例:-

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

1 个答案:

答案 0 :(得分:0)

要视情况而定。

1):如果为特定实体打开了二级缓存,并且先前已经对其进行了检索,则不会对数据库造成任何攻击。

2)如果两个get()不在同一个持久性上下文中(通常是在同一个事务中),那么两次都将对数据库造成打击。

3)如果两个都在同一个持久性上下文中,则第一个get()将命中数据库,而第二个{@ 1}}将仅查询持久性上下文而无需查询数据库