Nhibernate如何摆脱代理并在加载引用时具体化

时间:2011-07-05 20:13:28

标签: hibernate nhibernate nhibernate-mapping hibernate-mapping

我的项目与TreeNode的关系为1:m。 TreeNode引用了父节点...并且引用了另一个对象。

TreeNode及其关系存储在二级缓存中。

我的问题: 如果我使用默认的懒惰,那么如果我乘坐父级,这些TreeNode将从二级缓存加载。

但是 它将作为代理加载,我必须将它作为具体类(我在此对象和关联上调用函数超过2000次)。

如果我在TreeNode类def:上设置lazy = false 比hibernate会在连接中加载它的所有引用,我不会从二级缓存中受益。

我可以定义该对象将被加载为具体和加载时的关联(通过调用关联)也将作为具体加载吗?

谢谢

3 个答案:

答案 0 :(得分:0)

为什么你需要它成为一个具体的类?

无论如何,这里是如何获取未经过代理的实例:http://sessionfactory.blogspot.com/2010/08/hacking-lazy-loaded-inheritance.html

答案 1 :(得分:0)

如果您不希望代理在类级别上放置lazy = false,或者在对象上放置克隆。

答案 2 :(得分:0)

看看Ayende Rahien在以下博客文章中解释的lazy =“no-proxy”是否适用于你:

NHibernate New Feature: no-proxy associations

相关问题