Encontrar itens com um conjunto contendo todos os elementos de um determinado conjunto com jpql

Eu quero encontrar os itens que contêmtodos as tags fornecidas no conjunto de tags.

Aqui estão as classes simplificadas:

@Entity   
class Item {
  @ManyToMany
  var tags: java.util.Set[Tag] = new java.util.HashSet[Tag]()
}

@Entity
class Tag {
  @ManyToMany(mappedBy="tags")
  var items: java.util.Set[Item] = new java.util.HashSet[Item]
}

Se eu tentar assim

select distinct i 
from Item i join i.tags t
where t in (:tags)

Eu recebo os itens que contêmqualquer das tags dadas. Isso não é surpreendente, mas eu quero itens que contenhamtodos das tags dadas. Então eu tentei o contrário:

select distinct i 
from Item i join i.tags t
where (:tags) in t

Eu recebo a mensagem de erroorg.hibernate.exception.SQLGrammarException: arguments of row IN must all be row expressions. Funciona setags contém apenas uma única tag, mas falha com mais do que isso.

Como posso expressar isso em JPQL?

questionAnswers(2)

yourAnswerToTheQuestion