Vin*_*t89 5 java hibernate get
我试图了解对象初始化如何通过 Session Get 方法返回对象。请验证我的理解。当它执行时,它会在一级缓存中检查具有给定标识符的对象,然后在二级缓存中检查(如果已配置),如果没有找到,则触发选择查询以从数据库中检索数据。我的问题是,它是否包含选择查询中配置为延迟加载的关联,或者为返回对象中的此类关联设置了空值?
如果是这种情况,那么 session.get 不会对返回的对象进行完整的初始化,这与网络上大多数 Hibernate 教程中所写的内容相矛盾。
回答这个问题:
它是否包含选择查询中配置为延迟加载的关联,或者为返回对象中的此类关联设置了空值?
1)session.get()不会发起懒惰的事情。绝不。事实上这就是设计的中心思想。否则 - 我们将能够在一次 SHOT 中加载整个数据库(在一次 JAVA 调用中session.get())
2)而且也不会是空的。每个参考文献或集合都将由proxy代表。这是我们如何避免一次性加载完整数据库的方法(使用一种方法初始化的所有内容)。因为每个代理实际上都是一个承诺 - 一旦我们触及它......它就会加载真实数据。
等等。所以 get 是一种非常安全的方式,如何接收配置中的尽可能少的数据......
| 归档时间: |
|
| 查看次数: |
30248 次 |
| 最近记录: |