Pan*_*kaj 1 nhibernate lazy-loading
我正在使用Nhibernate,但由于对Nhibernate的理解不足,我仍然对这两个主题感到困惑(延迟加载和急切加载).
请定义我懒惰加载和热切加载简单的单词.为什么我们使用castle.Dynamic代理?
Mig*_*ing 11
延迟加载和预先加载是每个ORM中必须存在的概念.我们来看一个亲子关系:
class Parent {
String name;
List<Child> childs;
}
class Child {
String name;
}
Run Code Online (Sandbox Code Playgroud)
当您加载Parent的元素时,ORM必须决定它是否也加载子集合(例如通过连接),或者它是否延迟查询以加载子集直到您实际访问集合为止
parent.childs.get(0)
Run Code Online (Sandbox Code Playgroud)
如果要在访问集合时触发查询以检索子节点,则需要对子集合进行某种回调/拦截.这是通过集合上的代理完成的,因此您可以拦截对集合的每次访问以从db获取数据.这就是为什么你需要像Castle这样的代理/拦截库.
| 归档时间: |
|
| 查看次数: |
1797 次 |
| 最近记录: |