A mio avviso l'hashset (non permettendo l'inserimento di chiavi doppie) ti restituisce solo 2 valori, perchè dalla lista escono effettivamente solo 2 valori distinti.
Quindi il problema è sicuramente nella lista restituita.

Il post che hai linkato non mi aiuta.
Il suggerimento che ti do è quello di far visualizzare la query che Hibernate effettivamente fa sul DB (impostando la specifica proprietà).
Ho come la sensazione che tu stia inconsapevolmente facendo una query del tipo:
codice:
select * from TABLE where a = a
che manda in confusione tutti i db.
Spero aiuti,
ciauz