Du skal muligvis ændre din metode som sådan:
@SuppressWarnings("unchecked")
@Transactional
public Collection<Entry> findEntries() {
return sessionFactory.getCurrentSession()
.createCriteria(Entry.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
}
Skift også addresses til et Set :
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "id")
private Set<EntryAddress> addresses;
Rediger:
Åh...I EntryAddress du har id defineret som @Id men det er ikke enestående. Du skal lave id den primære nøgle og få den til at stige automatisk, som du gør i Entry . Opret derefter endnu et felt i EntryAddress det er fremmednøglen til Entry kaldet noget som entry_id .