आपको अपनी पद्धति को इस प्रकार संशोधित करने की आवश्यकता हो सकती है:
@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 . जैसा कुछ कहा जाता है ।