Potrebbe essere necessario modificare il metodo in questo modo:
@SuppressWarnings("unchecked")
@Transactional
public Collection<Entry> findEntries() {
return sessionFactory.getCurrentSession()
.createCriteria(Entry.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
}
Inoltre, cambia gli addresses
a un Set
:
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "id")
private Set<EntryAddress> addresses;
Modifica:
Oh...In EntryAddress
hai id
definito come @Id
ma non è unico. Dovresti creare id
la chiave primaria e fai in modo che si incrementi automaticamente come fai in Entry
. Quindi crea un altro campo in EntryAddress
questa è la chiave esterna per Entry
chiamato qualcosa come entry_id
.