Es posible que deba modificar su método de esta manera:
@SuppressWarnings("unchecked")
@Transactional
public Collection<Entry> findEntries() {
return sessionFactory.getCurrentSession()
.createCriteria(Entry.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
}
Además, cambia addresses
a un Set
:
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "id")
private Set<EntryAddress> addresses;
Editar:
Oh... En EntryAddress
tienes id
definido como @Id
pero no es único. Deberías hacer id
la clave principal y hacer que se incremente automáticamente como lo hace en Entry
. Luego crea otro campo en EntryAddress
esa es la clave foránea de Entry
llamado algo como entry_id
.