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
.