Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在hibernate中将结果存储到地图中?_Java_Hibernate_Hibernate Mapping - Fatal编程技术网

Java 如何在hibernate中将结果存储到地图中?

Java 如何在hibernate中将结果存储到地图中?,java,hibernate,hibernate-mapping,Java,Hibernate,Hibernate Mapping,我需要一个人帮忙。 我有一个表帐户,它存储用户ID和帐户详细信息。单个用户ID有多条记录,具有不同的帐户详细信息。 我想将这些记录存储在一个映射中,其中USER_ID是键,Account List是值。我得到了用户ID的列表 从用户表。然后,对于每个用户id,我需要获得帐户详细信息 我可以通过实现以下算法\逻辑来填充该映射: 步骤1:从用户表中获取用户ID并将其存储在列表-userList中 第二步: for (User user : userList) { // Make a DB call

我需要一个人帮忙。 我有一个表帐户,它存储用户ID和帐户详细信息。单个用户ID有多条记录,具有不同的帐户详细信息。 我想将这些记录存储在一个映射中,其中USER_ID是键,Account List是值。我得到了用户ID的列表 从用户表。然后,对于每个用户id,我需要获得帐户详细信息

我可以通过实现以下算法\逻辑来填充该映射:

步骤1:从用户表中获取用户ID并将其存储在列表-userList中

第二步:

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)
}
但这里的问题是,如果用户表有1K记录,我必须从循环中调用1K db,这将导致性能问题。 您能告诉我是否有更好的方法可以使用hibernate实现这一点吗?

使用HQL连接查询(帐户和用户)获取所有帐户,并通过迭代帐户来构建映射

select acc from Account acc, User usr where acc.userId = usr.id

这意味着你已经明白地图不支持分页?因此,对于这样的数据结构来说,这并不是一个好的选择。总体用例是什么?一些后台批处理?或者这必须为每个用户运行?@AntJavaDev根据用例,这必须为每个用户运行。它不是批处理作业HMMM,那么您必须执行自定义分页以覆盖整个用户/帐户映射。另一个问题是为了理解为什么您需要一个地图,在您的示例中,对于一个用户,您也要获取所有其他用户的数据?还是有另一种联系?或者地图总是包含一个用户ID?