Filtrar busca à entidade baseado em seu relacionamento

Olá!

Tenho a seguinte entidade (simplificada):

@Entity
class Questao {
    
    @ManyToMany
    private List topicos;

    //get e set

}

Minha dúvida é: como faço para buscar todas questões que têm determinados tópicos? É possível? Há mais de um jeito de fazer?

Os tópicos não são obrigatórios e pode ter um mesmo tópico em questões diferentes.

Utilizo JPA (EntityManager) no Hibernate.

Tentei fazer (simplificado):

select q 
from Questao as q
	left join q.topicos as t
where t.id in (:listaDeTopicos)

Mas as questões que têm mais de um tópico vêm “duplicadas”. Não posso usar “distinct” porque preciso ordenar por um outro critério.