@ManyToMany: Criteria e HQL query trazendo entidades repetidas

Olá pessoal,
estou tentando resolver uma bronca envolvendo mapeamento @ManyToMany e Criteria/HQL query. Tenho o relacionamento unidirecional Usuario x Perfil, onde usuário possui uma coleção (Set) de perfis.

@ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "usuario_perfil", joinColumns = @JoinColumn(name = "id_usuario", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "id_perfil", referencedColumnName = "id")) public Set<Perfil> getPerfis() { return perfis; }
Ao tentar realizar a consulta de usuário, trazendo a coleção de perfis, o hibernate constrói um objeto do tipo Usuario para cada perfil que este possuir:

Criteria c = sessionFactory.getCurrentSession().createCriteria( Usuario.class); c.setFetchMode("perfis", FetchMode.JOIN);
ou

Query q = sessionFactory.getCurrentSession().createQuery( "from Usuario u join fetch u.perfis p");
A solução que encontrei foi a seguinte:

Gostaria de saber se este é o comportamento normal do hibernate, ou se algo está errado na configuração. Obrigado.

Normal é relativo, não? Depende o que se quer fazer.
Posta a query que o hibernate constrói.