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!
mas o hibernate nao vai broncar pelo fato de ter “select aula, count(tag)” ? ele vai conseguir retornar objetos de Aula com esse count ai no select?
vou tentar…
é isso mesmo…
qd eu coloco aula e count no select o hibernate retorna um object q nao da pra fazer catch pra Aula nao…
mas consegui resolver da seguinte forma:
select aula
from Aula as aula
left join aula.tags as tag
where tag in (:tags)
group by aula
order by count(tag) desc
ai no caso eu retirei o count do select e tive que colcoar :tags entre parenteses, se nao da erro