当前位置: 首页 > 知识库问答 >
问题:

是否有一种使用ID列表从存储库中查找特定记录的有效方法?[副本]

史骏
2023-03-14

我想使用ID列表从CRUD存储库中获取某些记录,目前我的代码如下所示:

  public List<Document> getDocuments(List<String> idList) {
        List<Document> allDocumentList = repository.findAll();
        List<Document> resultList = new ArrayList<>();
        for (String id : idList) {
            resultList.add(allDocumentList.stream()
                    .filter(document -> document.getId().equals(id))
                    .findFirst().get());
        }
        return resultList;

有没有更好、更有效的方法来做到这一点?基本上,我正在考虑存储库有大量记录的情况。

共有1个答案

甄正信
2023-03-14

您可以在DB端过滤记录

SELECT * FROM documents WHERE id IN ($idList)
 类似资料:
  • 在我的PostgreSQL中,我有两个表和tables,它们之间有 关系(一个 /code>可以有多个 )。 用户可以在棋盘上放几张牌。为了实现此功能,我通常会创建另一个名为< code>cards_on_hold的表,具有< code>OneToMany关系,并将保留卡id放入此表中。为了获取板的数据,我将使用< code>board和< code>cards_on_hold之间的JOIN。 P

  • 我正在尝试执行一个JPA SQL查询以从数据库中选择特定列(查询:'select username,ranking_points_sum from user order by ranking_points_sum ASC')。 我的用户实体: 我的JPA存储库: 如果我更改JPA存储库查询,从数据库中选择所有内容,如下所示: 我没有发现任何错误。“http://localhost:8080/api

  • 我写了一个这样的方法。此方法的目的是根据数据库中发送的列,通过查询是否有记录来返回。但是,当我键入Any(X=>X.)时,我无法访问相关表的列。我应该如何编辑或添加到此方法?我对这些事情一知半解。如果你能解释一下我会很高兴的。多谢了。

  • 问题内容: 我有一张大桌子可用来工作。我想检查是否有一些记录的parent_id等于我的传递值。目前,我实现的方法是使用“从mytable中选择count(*),其中parent_id =:id”;如果结果> 0,则表示它们确实存在。 因为这是一个非常大的表,并且我不在乎存在的确切记录数,所以我只想知道它是否存在,所以我认为count(*)效率很低。 如何以最快的方式实现此要求?我正在使用Orac

  • 我目前集成了maven、jenkins、Nexus和git,我正在学习这些工具。 我的要求是告诉maven只从pom中提到的存储库下载依赖项。xml,而不是来自我的Nexus存储库,但它的作用恰恰相反。 我已经在my settings.xml的repository下声明了我的Nexus版本和快照存储库。我如何告诉maven从特定的存储库而不是Nexus repo下载依赖项。 下面是我的pom。xm

  • 我有一个实体: 内在类 我需要的是内部ID列表。为了解决这个问题,我尝试了这样的方法:- List innerEnityIds=listofenity.stream().map(sys->sys.getdata().stream().map(obj->obj.getid().collect(collectors.tolist()));