以视图模式打开会话

以视图模式打开会话,第1张

视图模式打开会话

我已经使用“视图中的打开会话”模式(即Spring实现)成功解决了所有懒惰的初始化问题。我使用的技术与您完全一样。

使用此模式可以使我完整地映射实体关系,而不必担心在dao中获取子实体。大多。在90%的情况下,该模式解决了视图中的延迟初始化需求。在某些情况下,您将必须“手动”初始化关系。这些案例很少见,在我的案例中总是涉及非常非常复杂的映射。

使用“在视图中打开实体管理器”模式时,正确定义实体关系(尤其是正确的传播和事务设置)非常重要。如果未正确配置这些对象,则在视图中延迟初始化某些实体时,将出现与关闭的会话相关的错误,并且由于会话已经关闭而失败。

我一定会选择选项1。有时可能需要选项2,但我绝对没有理由使用选项3。选项4也不是。急于获取所有内容会扼杀只需要列出某些父实体的一些属性(按顺序排列)的任何视图的性能。

N + 1个选择

在开发期间,由于初始化视图中的某些关系,将有N +
1个选择。但这不是丢弃模式的原因。只要解决这些问题,就可以解决这些问题,然后再将代码交付生产。使用OEMIV模式解决这些问题与使用任何其他模式一样容易:添加适当的dao或服务方法,修复控制器以调用其他finder方法,也许向数据库添加视图等。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5091052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存