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