java - Spring JPA 查询以获取不在表中的提供的 ID 的子列表

标签 java jpa spring-data-jpa

在给定 ID 列表的情况下,是否有一种方法可以使用 Spring JPA 存储库查询来获取我们表中不存在的 ID 的子列表?

像这样:

@Query(value = "Some query returning a sublist of orderIds not in TABLE")
List<String> orderIdsNotInTable(@Param("orderIds") List<String> orderIds);

我找到了一个链接 here但我想不出如何使它成为 JPA 查询。

编辑:这里的目标是节省运行内存,所以如果有数千个 ID 并且同时发生许多调用,我希望在不创建所有 ID 的第二个副本的情况下处理它可能。

最佳答案

根据您的问题,我的解决方案是:

  1. 检索数据库中存在的 ID 列表:
   @Query("select t.id from Table t")
    List<String> findAllIds();
  1. 遍历您拥有的 ID 列表,并查找数据库表中的 ID 列表是否不包含您的 ID。
 List<String> idsNotContained= orderIds.stream()
    .filter(!findAllIds()::contains)
    .collect(Collectors.toList());

关于java - Spring JPA 查询以获取不在表中的提供的 ID 的子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73242680/

相关文章:

java - 匹配 scrypt 的正则表达式

Java正则表达式匹配优先级模式

java - 使用 Java 配置在 Spring JPA 中设置附加属性

java - JPA 2 标准 - 分组和计数

mysql - 使用 GenerationType.Table 时如何集群 Hibernate ORM 标识符

eclipselink - java.lang.NoSuchMethodError : org. springframework.beans.BeanUtils.findPropertyForMethod

java - Spring Data JPA 和事务管理

java - 为什么我的 @Scheduled Spring Boot 任务在 Azure 中运行不一致?

Java-在构造函数中使用实例变量循环遍历数组

java - 无法使用 Spring Data JPA 搜索对象的嵌套列表