Mogelijk moet u uw methode als volgt wijzigen:
@SuppressWarnings("unchecked")
@Transactional
public Collection<Entry> findEntries() {
return sessionFactory.getCurrentSession()
.createCriteria(Entry.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
}
Wijzig ook addresses
naar een Set
:
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "id")
private Set<EntryAddress> addresses;
Bewerken:
Oh...In EntryAddress
je hebt id
gedefinieerd als de @Id
maar het is niet uniek. U moet id
. maken de primaire sleutel en laat deze automatisch toenemen zoals u doet in Entry
. Maak vervolgens een ander veld in EntryAddress
dat is de refererende sleutel voor Entry
zoiets als entry_id
. genoemd .