当调用远程服务(例如通过 RMI)从使用 Hibernate 的数据库中加载实体列表时,您如何管理它以初始化客户端需要的所有字段和引用?
示例:客户端调用远程方法来加载所有客户。对于每个客户,客户希望初始化对客户购买物品列表的引用。
我可以想象以下解决方案:
为每个特殊查询编写一个远程方法,初始化所需的字段(例如 Hibernate.initialize())并将域对象返回给客户端。
像 1. 但创建 DTO
将查询拆分为多个查询,例如一个用于客户,另一个用于客户的文章,并让客户管理结果
remote 方法采用 DetachedCriteria,由客户端创建并由服务器执行
开发自定义“预加载模式”,即客户端明确指定要预加载哪些属性的方法。