Dependendo do tipo de join que você fizer e a quantidade de registros que tiver nas suas tabelas relacionadas é possível que isso aconteça.
Vou dar um exemplo tosco que é a primeira coisa que veio na cabeça.
Imagina que você tem uma tabela MATERIAS onde você tem uma relação de notícias de jornal e FOTOS onde você tem uma relação de fotos das matérias. A relação é 1:1, ou seja, para cada MATERIA você tem uma FOTO.
Aí você faz a consulta para obter a matéria com a foto:
SELECT * FROM MATERIAS m
INNER JOIN FOTOS f ON m.materia_id = f.materia_id
WHERE m.materia_id = 1;
Então, somente um registro deverá ser retornardo considerando que só foi cadastrada uma foto por matéria.
MAS, digamos que por acaso alguém cadastrou equivocadamente duas fotos para a mesma matéria (ou seja, dois registros na tabela FOTOS com o mesmo materia_id).
Neste caso a mesma query que retornou somente um registro passará a retornar dois.
É bem possível que o seu problema seja algo do tipo pois eu já usei Hibernate várias vezes e isso unnca me aconteceu.
Verifique suas queries e seus dados para ver se você não tem um problema deste tipo.
[ ]s, Guilherme Chapiewski