Hibernate e fetch retornando vários pais

Boa tarde pessoal, eu tenho a seguinte situação:
uma classe Pch (pai) e nela um atributo tipo Set ligando a Leitura (filhos).

Bom vejamos este caso: eu tenho dois pais Pch 1, pch 2 e cada pai tem 3 filhos: (aqui no banco de dados)
Pch 1 -> leitura 1,2,3
Pch 2 -> leitura 4,5,6

eu preciso trazer em uma consulta todas as pchs e as leituras de um intervalo de datas então uso:

Query query = session.createQuery("FROM Pch p JOIN FETCH p.leituras l WHERE l.dataLeitura BETWEEN :datainicio AND :datafim ORDER BY p.nome ASC");
        query.setTimestamp("datainicio", datainicio);
        query.setTimestamp("datafim", datafim);
        List result = query.list();

o correto era ele me trazer os 2 pais com as coleções inicializadas:
Pch 1 -> leitura 1,2,3
Pch 2 -> leitura 4,5,6

mas ele me devolve assim:

Pch 1 -> leitura 1,2,3
Pch 1 -> leitura 1,2,3
Pch 1 -> leitura 1,2,3
Pch 2 -> leitura 4,5,6
Pch 2 -> leitura 4,5,6
Pch 2 -> leitura 4,5,6

ou seja a qualtidade de pais relativa a qualtidade de filhos.

Para me trazer corretametne preciso usar DISTINCT:

Query query = session.createQuery("SELECT DISTINCT(p) FROM Pch p JOIN FETCH p.leituras l WHERE l.dataLeitura BETWEEN :datainicio AND :datafim ORDER BY p.nome ASC"); query.setTimestamp("datainicio", datainicio); query.setTimestamp("datafim", datafim); List result = query.list();

minha dúvida é: ele não deveria trazer as coleções inicializadas sem ter que usar DISTINCT ?
abraços