Olá Pessoal,
meu problema é:
Tenho a entidade Aula que possui uma collection de Tag. Quero implementar uma consulta onde, tendo uma collection de tags de entrada, eu retorne as aulas que possuem essas tags. No caso devem ser retornadas as aulas de forma ordenada pela quantidade de tags em comum.
consigo fazer o seguinte:
select aula
from Aula as aula
left join aula.tags as tag
where tag in :tags
com essa query eu consigo pegar todas as aulas que possuem tags dentro desta lista de entrada. Porém não consigo pegar de forma ordenada pela quantidade de tags em comum com a lista de entrada.
espero que nao tenha ficado meio dificil de entender! 
desde ja agradeço a atencao…
vlw