Hibernate:为什么Session.load方法存在于Hibernate中,因为如果找不到对象,它会引发不可恢复的异常
Hibernate中的Hibernate:为什么Session.load方法存在于Hibernate中,因为如果找不到对象,它会引发不可恢复的异常,hibernate,Hibernate,Hibernate中的Session的load和get方法有什么区别 如果没有匹配项,load()将引发不可恢复的异常 数据库行 如果没有匹配的数据库,get()将返回null 划船 为什么Hibernate创建者在API中保留此方法负载?(因为如果找不到对象,它会抛出一个不可恢复的异常)。get()是否足够?如果找不到实体,则只返回异常vs null Load还可能返回代理,而不是实体的持久实例。然后,当首次访问属性时,该代理将触发该实体的加载 这在Hibernate论坛上有详细讨论,之前在S
Session
的load
和get
方法有什么区别
如果没有匹配项,load()将引发不可恢复的异常
数据库行
如果没有匹配的数据库,get()将返回null
划船
为什么Hibernate创建者在API中保留此方法负载?(因为如果找不到对象,它会抛出一个不可恢复的异常)。
get()
是否足够?如果找不到实体,则只返回异常vs null
Load还可能返回代理,而不是实体的持久实例。然后,当首次访问属性时,该代理将触发该实体的加载
这在Hibernate论坛上有详细讨论,之前在SO和其他许多地方也有详细讨论。如果找不到实体,则只返回exception vs null Load还可能返回代理,而不是实体的持久实例。然后,当首次访问属性时,该代理将触发该实体的加载
这在Hibernate论坛上有详细的讨论,之前在SO和其他很多地方都有讨论。你说的不可恢复是什么意思?Load只是抛出一个异常,但仍然可以捕获…Un recoverable是指当不存在是一个严重错误时应该使用Load(当您知道实例存在时使用Load),即不应该通过捕获异常来检查是否存在,这就是get应该用来做的。你说的不可恢复是什么意思?Load只是抛出一个异常,但仍然可以被捕获…Un-recoverable指的是当不存在是一个严重错误时应该使用Load(当您知道实例存在时使用Load),即不应该使用它通过捕获异常来检查是否存在,这就是get的用途。谢谢Alex,第一个环节很好。我仍然有一个问题,据我所知,load和get都会首先尝试从缓存中获取对象,如果找不到,则只会命中数据库??如果我错了,请纠正我。是的,这是正确的,两种方法在进入数据库之前都会命中第一级和第二级缓存。并且只有在确定对象存在的情况下,才应该使用load方法。谢谢Alex,第一个链接非常好。我仍然有一个问题,据我所知,load和get都会首先尝试从缓存中获取对象,如果找不到,则只会命中数据库??如果我错了,请纠正我。是的,这是正确的,两种方法在进入数据库之前都会命中第一级和第二级缓存。并且只有在确定对象存在的情况下,才应该使用load方法