【问题标题】:Return entities that do NOT exist in JPA返回 JPA 中不存在的实体
【发布时间】:2021-12-28 17:04:13
【问题描述】:

我正在使用 Spring Boot 和 MySQL。 我有一个 Book 数据库实体,并且我正在从控制器接收书籍列表。 如何过滤数据库中不存在的实体的书籍列表。

因此,如果数据库包含书籍 [1, 2, 3] 并且我正在接收书籍 [3, 4, 5],那么我只想过滤书籍 [4, 5]

【问题讨论】:

  • 解析您的输入 JSON 数组以分隔行,每行一本书,测试它们中的每一个是否存在于包含的书籍 JSON 数组中,并仅选择不存在的那些,将它们组合回 JSON 数组。
  • @Akina 只是出于好奇,如果数据库的记录比输入 JSON 数组的记录多得多,如果每个单独的书籍输入都存在,检查数据库不是更有效(如果输入 3 个查询有 3 本书),而不是使用 1 个查询(这可能会选择比 3 本书多得多的书)?
  • @don 当然向后变体也是可能的。但是 OP 表明现有列表和接收列表都是单个数组,每个数组都不是很多...

标签: mysql spring spring-boot jpa


【解决方案1】:

如何选择存在的然后过滤掉它们。

例如

// GIVEN
DB= [1, 2, 3, 4]

// WHEN
Request= [3,4,6,7]

// THEN
Fetch books that exist [3,4]
Remove existing books from the request [6,7]

这样做会让您只向数据库发送一个查询!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 2011-10-16
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    相关资源
    最近更新 更多