我看到的许多先前问题的主题-但与此不完全一样。我了解 Hibernates 延迟获取策略、open-session-in-view 等,但我似乎无法找到解决这个简单的小问题的解决方案,无论如何我的关联都是延迟获取的。
我没有使用开放会话,因为我的网络应用程序是在没有它的情况下构建的,现在“迁移”起来很复杂......
假设我们有一个引用链,比如a <- b <- c <- d -> e
通常,获取a也意味着我们需要b、c和d。所以这些被设置为总是急切地获取(通过lazy=false
在休眠映射文件中指定)。这有效!
但是,我们现在还需要总是急切地获取关联e,每次获取 d 。因为e对于在d上执行一些逻辑运算至关重要。
这就是它停止工作的地方...... e与d相关联,作为d上的多对一关联。将此设置为lazy=false
不起作用,它仍未正确初始化,并且从d访问e上的属性会导致 LazyInitialisationException。
我期望这会奏效是错误的吗?惰性属性是在使用 hibernate v. 3.2.6 和 Spring 版本 2.5.6 的 hbm 文件中指定的。
希望有人可以为我澄清事情......
无论如何,如果你找到了,请参考另一篇文章。我似乎找不到一个涵盖这个...