gpt4 book ai didi

java - 我 'hydrate' 对象图在哪一层?

转载 作者:行者123 更新时间:2023-11-30 09:50:39 27 4
gpt4 key购买 nike

我有一个为许多客户端提供数据的持久层。我还有一个规范化的表结构,这意味着值分布在各个表中。我想设计我的持久性服务以确保依赖于它的服务进行最少的往返:如果可能,不超过一次。

鉴于此,我应该关注什么以获得优雅的解决方案?
1. 我是否确保客户可以在获取过程中指明他们想要的对象图部分? (从而减少往返)[例如:fetch(parent, list<child-object-name>) ]
2. 我是否确保我提供了常用的方法,例如对对象的部分进行水合,以及基本的获取? [例如:hydrate(parent, list<child-table-name>) ]
3. 我是否一开始就提供基本信息(例如,仅深度为 1 的对象图/仅查找表对象),其余仅根据要求提供?

我明白了,网上有很多讨论,有很好的资料。我也读了一些:
* http://forum.springsource.org/archive/index.php/t-23439.html
* How can I access lazy-loaded fields after the session has closed, using hibernate? (保罗·亚当森的回答)
* Deep Object Graphs Hibernate

然而,大多数答案都围绕着“做最适合你的事情”。遇到这种情况,程序员通常会怎么做?

最佳答案

不要制作通用的千篇一律的持久层。专门为您正在实现的功能用例编写持久性方法。

在执行此操作时,您可能会遇到可以在两个或多个用例中重复使用持久性方法或其中的某些部分的情况。这可能会迫使您重命名该方法以使其更通用(减少与一个特定用例的耦合),或者重构以提取公共(public)部分。但是,如果您希望您的应用获得最佳性能,您将需要针对特定​​用例的特定查询。

关于java - 我 'hydrate' 对象图在哪一层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5046263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com