Vous devrez peut-être modifier votre méthode comme suit :
@SuppressWarnings("unchecked")
@Transactional
public Collection<Entry> findEntries() {
return sessionFactory.getCurrentSession()
.createCriteria(Entry.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
}
Changez également les addresses à un Set :
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "id")
private Set<EntryAddress> addresses;
Modifier :
Oh... Dans EntryAddress vous avez id défini comme @Id mais ce n'est pas unique. Vous devriez faire id la clé primaire et faites-la s'incrémenter automatiquement comme vous le faites dans Entry . Créez ensuite un autre champ dans EntryAddress c'est la clé étrangère de Entry appelé quelque chose comme entry_id .