Encontrar elementos con un conjunto que contenga todos los elementos de un conjunto dado con jpql

Quiero encontrar los artículos que contienentodos Las etiquetas dadas en su conjunto de etiquetas.

Aquí están las clases 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]
}

Si lo intento asi

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

Obtengo los artículos que contienenalguna de las etiquetas dadas. Eso no es sorprendente, pero quiero artículos que contengan.todos de las etiquetas dadas. Así que lo intento al revés:

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

Me sale el mensaje de errororg.hibernate.exception.SQLGrammarException: arguments of row IN must all be row expressions. Funciona sitags contiene una sola etiqueta, pero falla con más que eso.

¿Cómo puedo expresar esto en JPQL?

Respuestas a la pregunta(2)

Su respuesta a la pregunta