有没有一种方法可以使用SpringJPARepository Query来获取ID的子列表,这些ID在给定的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创建第二个副本。
4条答案
按热度按时间uidvcgyl1#
根据你的问题,我的解决方案是:
1.检索数据库中存在的ID列表:
1.循环查看您拥有的ID列表,并查找数据库表中的ID列表是否不包含您的ID。
tpgth1q72#
基于@ Pawan.java解决方案,我将查找id,然后应用过滤。
返回的列表将包含存在的id,然后只需从原始列表中删除这些id。
如果传入了大量的id,那么您可能需要考虑将它们拆分为并行批处理。
frebpwbc3#
如果您的列表不是太大,那么一个简单而有效的解决方案是从列表中检索表中 * 存在 * 的ID:
然后,在初始列表和返回列表之间进行简单的比较,就可以给予表中没有的ID。
vzgqcmou4#
我不知道我是否理解正确,但你可以尝试上面的解决方案。