gpt4 book ai didi

java - Hibernate (HQL) 查找参数列表中缺失的 id

转载 作者:行者123 更新时间:2023-12-02 11:40:39 25 4
gpt4 key购买 nike

假设我有一个 id 列表(作为参数,而不是表)和一个包含实体及其 id 的表。

参数列表:ID:1,2,3,4

表实体:ID:1,3,4

现在我想找到参数列表中所有未存储在数据库中的缺失值,在本例中为:id 2。

我想到的简单且重载的函数是查询每个 id 是否存在...如果不存在,则将其添加到结果中。

public List<long> findMissing(List<long> ids) {
List<long> missing = new ArrayList<long>();
for (long id : ids) {
if (!dao.exists(id))
missing.add(id);
}
return missing;
}

...但我认为如果列表增长(我们正在谈论 0 - 1000 个元素),这是一个坏主意。

我想知道是否有这样的 HQL 函数:

SELECT t FROM (:ids) t 
WHERE t not in
(SELECT e.id FROM MyEntity e
WHERE *maybe some conditions*);

最佳答案

不幸的是,FROM 子句中不允许使用参数。您需要选择所有 id 并在内存中过滤它们。对于 0-1000 个元素来说,这应该不会太昂贵。

关于java - Hibernate (HQL) 查找参数列表中缺失的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48589380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com