我有一个为许多客户端提供数据的持久层。我也有一个标准化的表结构,这意味着值分布在表中。我想设计我的持久性服务,以确保依赖它的服务进行最小程度的往返:如果可能,不要超过一次。哪一层可以“保湿”对象图?
鉴于此,我应该关注一个优雅的解决方案?
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
然而,大部分的答案弄清“做什么最适合你”。程序员通常在这种情况下做什么?
同意;我们有一个现有的系统,人们选择每次添加新的特定方法,导致代码膨胀。这导致了每隔一次迭代的大规模重构工作。那么,人们最成功的默认行为是什么? – CMR 2011-02-18 20:59:14