我有许多表与表客户端具有一对一的关系,由 Hibernate 映射。
在使用线程对这些表中的每一个进行选择后,我需要创建一个唯一客户端文件。
这些表格中的每一个(例如 Invoice、Service 等)也将包含在文件中,但在客户列表之后(政府要求,不要问为什么......)。
我想到了 3 种不同的方法来做到这一点:
方法一:使用HashSet
每次选择后,我将 Client 对象添加到 HashSet。遗憾的是,此解决方案不可扩展,因为表 B 可能有数百万条唯一记录,并可能导致 OutOfMemory 错误。
方法2:使用视图
我还可以创建一个加入表格的视图。问题是这些选择有许多复杂的规则并且经常变化。维护将是一场噩梦,因为它需要我更改程序和视图。
方法三:使用临时表
我可以创建一个临时表来存储在每个表中找到的客户端对象,然后对该表执行选择。
到目前为止,方法 3 似乎是最好的解决方案,但我想知道是否有更好的方法来做到这一点。如何改进我的设计?