Você pode precisar modificar seu método assim:
@SuppressWarnings("unchecked")
@Transactional
public Collection<Entry> findEntries() {
return sessionFactory.getCurrentSession()
.createCriteria(Entry.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
}
Além disso, altere
addresses
para um Set
:@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "id")
private Set<EntryAddress> addresses;
Editar:
Ah...Em
EntryAddress
você tem id
definido como o @Id
mas não é único. Você deve fazer id
a chave primária e faça com que ela seja incrementada automaticamente como você faz em Entry
. Em seguida, crie outro campo em EntryAddress
essa é a chave estrangeira para Entry
chamado algo como entry_id
.