【发布时间】:2020-05-19 06:34:43
【问题描述】:
我需要一个帮助。 我有一个表 - ACCOUNT 存储 USER_ID 和 ACCOUNT_DETAIL。具有不同 ACCOUNT_DETAIL 的单个 USER_ID 有多个记录。 我想将此记录存储在地图中,其中 USER_ID 将是键,帐户列表将是值。我得到了 USER_ID 的列表 来自 USER 表。然后对于每个用户 ID,我需要获取帐户详细信息。
我可以通过实现以下算法\逻辑来填充该地图:
第 1 步: 从 USER 表中获取 userIds 并将其存储在列表中 - userList
第 2 步:
for (User user : userList) {
// Make a DB call to ACCOUNT table for user.id
// Put those details in the map - map.put(user.id, accountList)
}
但这里的问题是,如果 USER 表有 1K 记录,我必须从该循环进行 1K db 调用,这将导致性能问题。 您能否告诉我是否有更好的方法可以通过使用 hibernate 来实现这一点?
【问题讨论】:
-
这意味着你已经明白地图不支持分页?因此对于这种数据结构来说并不是一个很好的选择。什么是整体用例?一些后台批处理?还是必须为每个用户运行?
-
@AntJavaDev 根据用例,这必须为每个用户运行。它不是批处理作业
-
hmmm,那么您必须执行自定义分页以涵盖整个用户/帐户映射。另一个问题只是为了理解为什么你需要一个地图,在你的例子中,只有一个用户,你还要获取所有其他用户的数据?还是有其他联系?还是地图总是包含一个 USER_ID?
标签: java hibernate hibernate-mapping