我可以使用JPQL中的IN子句来选择这两项吗?

问题描述

| 我有标签相关的软件-多对多。 我想创建一个查询,该查询将选择与我放置为参数的所有标签相关的所有软件。 我写: 公共静态列表searchByTags(列表标签){
    TypedQuery query =
            Software.em().createquery(\"SELECT disTINCT s FROM Software s,IN(s.tags) t WHERE t IN(:tags)\",Software.class);
    query.setParameter(\"tags\",tags);

    return query.getResultList();
}
但这不是我想要的。例如,如果我有
soft1 -> tag1,tag2 
soft2 -> tag2
它会同时选择我。但是我只想要一个-soft1。 如何创建这样的查询?     

解决方法

我找到了答案:   TypedQuery查询=                   Software.em()。createQuery(\“ SELECT s   FROM Software的INNER JOIN s.tags标签   标记在(:tags)中的分组依据   COUNT(tag)=:size \“,Software.class);