get and load 在 hibernate中的区别


在这篇文章中,我们将看到 hibernate 中 get 和 load 之间的区别。

在我们真正看到差异之前,让我简要介绍一下两者。

session.get()

  • session.get() 方法总是命中数据库并返回实际对象
  • 如果没有得到对象,则返回 null。

session.load()

  • session.load() 方法总是不命中数据库并返回代理对象
  • 如果它没有得到对象,它会抛出 ObjectNotFoundException。

get vs load in hibernate

范围 get load
Database retrieval 它总是命中数据库 它没有命中数据库
If null 如果没有得到有id的对象,则返回null 如果它确实获得了带有 id 的对象,它会抛出 ObjectNotFoundException
Proxy 它返回真实对象 它返回代理对象
Use 如果不确定是否存在带有 id 的对象,可以使用 get 如果你确定对象的存在,你可以使用 load


原文链接:https://codingdict.com/