Hibernate:为什么Session.load方法存在于Hibernate中,因为如果找不到Object,它会抛出不可恢复的异常

时间:2012-06-13 12:37:58

标签: hibernate

Hibernate中load的{​​{1}}和get方法有什么区别?

  如果没有匹配,

load()将抛出一个不可恢复的异常   数据库行。

     如果没有匹配的数据库,

get()将返回null   行。

为什么Hibernate Creators会在API中加载此方法? (如果找不到Object,它会抛出一个不可恢复的异常)。 Session不足够吗?

1 个答案:

答案 0 :(得分:1)

如果找不到实体,那么只有异常vs null返回。

加载也可能会返回代理而不是实体的持久实例。然后,当首次访问属性时,此代理将触发此实体的加载。

这在Hibernate论坛here上详细讨论过,之前在SO here以及其他很多地方。