次のようにメソッドを変更する必要がある場合があります:
@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のような名前 。