Може да се наложи да промените метода си така:
@SuppressWarnings("unchecked")
@Transactional
public Collection<Entry> findEntries() {
return sessionFactory.getCurrentSession()
.createCriteria(Entry.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
}
Освен това променете addresses
към Set
:
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "id")
private Set<EntryAddress> addresses;
Редактиране:
О... В EntryAddress
имате id
дефиниран като @Id
но не е уникален. Трябва да направите id
първичния ключ и го накарайте да се увеличава автоматично, както правите в Entry
. След това създайте друго поле в EntryAddress
това е външният ключ за Entry
наречен нещо като entry_id
.