Może być konieczne zmodyfikowanie metody w następujący sposób:
@SuppressWarnings("unchecked")
@Transactional
public Collection<Entry> findEntries() {
return sessionFactory.getCurrentSession()
.createCriteria(Entry.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
}
Zmień także addresses
do Set
:
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "id")
private Set<EntryAddress> addresses;
Edycja:
Och... W EntryAddress
masz id
zdefiniowany jako @Id
ale nie jest wyjątkowy. Powinieneś zrobić id
klucz podstawowy i automatycznie zwiększaj go, tak jak robisz to w Entry
. Następnie utwórz kolejne pole w EntryAddress
to jest klucz obcy do Entry
o nazwie coś w stylu entry_id
.