gpt4 book ai didi

java - Hibernate Criteria 查询 Collections 包含某些元素

转载 作者:搜寻专家 更新时间:2023-10-31 20:33:57 25 4
gpt4 key购买 nike

我对 Criteria 有一些疑问。我有一个 Job 类,其中包含一组 Skills

当我想过滤包含 2 个技能的工作时,问题就来了,例如,所有包含 id 为 1 和 3 的技能的工作。

现在我有这个:

for (Skill skill : job.getSkills()) {
ids.add(skill.getId());
}

criteria.createAlias("skills", "skill");
criteria.add(Restrictions.in("skill.id", ids));

但它为我提供了包含技能 1 或 3 的工作,而不仅仅是那些同时具备这两种技能的工作。我该怎么做?

更新:

criteria.createAlias("Job.skills", "skill");    
Conjunction and = Restrictions.conjunction();

for (Skill skill : job.getSkills()) {
and.add(Restrictions.eq("skill.id", skill.getId()));
}
criteria.add(and);

我已经试过了,但是 sql 是 and (skill1_.ID=? and skill1_.ID=?) 没有结果

最佳答案

试试这个:

criteria.createAlias("skills", "skill");

for(Skill skill:job.getSkills()){
List<Long> wrappedParameter = new ArrayList<Long>();
wrappedParameter.add(skill.getId());
criteria.add(Restrictions.in("skill.id", wrappedParameter)));
}

关于java - Hibernate Criteria 查询 Collections 包含某些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27781010/

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