Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

हाइबरनेट मुद्दा:@OneToMany एनोटेशन डुप्लिकेट लौटाता है

आपको अपनी पद्धति को इस प्रकार संशोधित करने की आवश्यकता हो सकती है:

@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 . जैसा कुछ कहा जाता है ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पायथन में मैसकल से डेटा माइनिंग मिन मैक्स को कैसे सामान्य करें

  2. डेटाबेस को MySQL या MariaDB में आयात करें

  3. क्या मैं mysql टेबल कॉलम केस को असंवेदनशील बना सकता हूं?

  4. JSON के माध्यम से HTML कोड भेजना

  5. मल्टीपल इनर जॉइन इरेज़ एट्रीब्यूट्स