Möglicherweise müssen Sie Ihre Methode wie folgt ändern:
@SuppressWarnings("unchecked")
@Transactional
public Collection<Entry> findEntries() {
return sessionFactory.getCurrentSession()
.createCriteria(Entry.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
}
Ändern Sie auch addresses
zu einem Set
:
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "id")
private Set<EntryAddress> addresses;
Bearbeiten:
Oh...In EntryAddress
Sie haben id
definiert als @Id
aber es ist nicht einzigartig. Sie sollten id
erstellen den Primärschlüssel und lassen Sie ihn automatisch inkrementieren, wie Sie es in Entry
tun . Erstellen Sie dann ein weiteres Feld in EntryAddress
das ist der Fremdschlüssel zu Entry
so etwas wie entry_id
genannt .