Hibernate 如何检查HQL中一个集合的所有元素是否存在于另一个集合中

Hibernate 如何检查HQL中一个集合的所有元素是否存在于另一个集合中,hibernate,collections,mapping,hql,Hibernate,Collections,Mapping,Hql,我有一个课程实体,它有一个技能实体的映射集合。现在我想通过HQL检查course.skills集合的所有元素是否存在于另一个集合中,我将在查询中作为参数传递该集合 我可以使用in语句检查另一个集合中是否已经存在一个元素,但我似乎不知道如何检查是否所有元素都存在 希望有人能帮我。谢谢 我很想找到一个更优雅的解决方案来解决这个问题,但我用这样一个问题来解决它: select course from Course course where not exists ( select skill.i

我有一个课程实体,它有一个技能实体的映射集合。现在我想通过HQL检查course.skills集合的所有元素是否存在于另一个集合中,我将在查询中作为参数传递该集合

我可以使用in语句检查另一个集合中是否已经存在一个元素,但我似乎不知道如何检查是否所有元素都存在


希望有人能帮我。谢谢

我很想找到一个更优雅的解决方案来解决这个问题,但我用这样一个问题来解决它:

select course from Course course
where not exists (
    select skill.id from Skill skill
    where skill.id in :setOfSkillIdsToHave
    and skill.id not in (
        select courseSkill.id
        from Course course2
        inner join course2.skills courseSkill
        where course2.id = course.id))
或者


你能给出一些你尝试过的代码示例吗。。。因为问题不太清楚
select course from Course course
where :numberOfSkillsToHave = (
    select count(skill.id)
    from Course course2
    inner join course2.skills courseSkill
    where courseSkill.id in :setOfSkillIdsToHave
    and course2.id = course.id)