मेरे पास ईजेबी में कई टोमनी बनाने के लिए एक सवाल है, एक संयुक्त संपत्ति के पास संपत्ति कैसे हो सकती है?
यहां एक उदाहरण है, छात्र और पाठ्यक्रम कई हैं, हर छात्र के पास कई पाठ्यक्रम हैं, और कई छात्र एक कोर्स चुनते हैं।जेपीए ManyToMany, कैसे शामिल हो सकता है Table एक संपत्ति है?
@Entity
public class Student implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
String name;
private Collection<Course> courses;
@ManyToMany(mappedBy = "students",cascade=CascadeType.ALL)
public Collection<Course> getCourses() {
return this.courses;
}
public void setCourses(Collection<Course> courses) {
this.courses = courses;
}
}
@Entity
public class Course implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
String name;
private Collection<Student> students;
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "Student_Course",
joinColumns = {@JoinColumn(name = "Course_ID", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "Student_ID", referencedColumnName = "id")})
public Collection<Student> getStudents() {
return this.students;
}
public void setStudents(Collection<Student> students) {
this.students = students;
}
}
हालांकि अगर मेरे पास जॉइनटेबल में कोई संपत्ति है, उदाहरण के लिए प्रत्येक छात्र के पास एक कोर्स के लिए एक स्कोर होता है। मैं इसे कई लोगों के साथ ईजेबी में कैसे बना सकता हूं?
आपके ध्यान के लिए बहुत धन्यवाद!
यदि आपके संबंध में संपत्ति है, तो आपको इसे इकाई के रूप में मॉडल करना चाहिए। यह प्रश्न लगभग समान है: http://stackoverflow.com/questions/7602386/mapping-value-in-junction-table-to-entity/7603036#7603036 संबंध का प्रतिनिधित्व करने वाली इकाई का नाम (कोर्स एसिग्मेंटमेंट) आपके लिए काफी अच्छा फिट बैठता है मामला। –
यह संभव नहीं है, आप रिश्ते में संपत्ति नहीं जोड़ सकते हैं। यदि आपको जॉइन टेबल में संपत्ति तक पहुंचने की आवश्यकता है, तो वह संपत्ति कुछ इकाई से संबंधित है और नतीजतन आपको तीसरी इकाई की आवश्यकता है। –
क्षमा करें, मैंने इसे सही किया। मेरे पास एक और सवाल है, जब मैंने संयुक्त रूप से एक पीके के रूप में @Embeddable वर्ग का उपयोग किया, यह काम नहीं करता (संकलित विफल), किसी ने कहा कि जेपीए 2.0 इसका समर्थन नहीं करता है! कृपया इसे देखें [jpa-eclipselink-manytomany-with-dat] (http://stackoverflow.com/questions/4013397/jpa-eclipselink-manytomany-with-data), क्या यह काम करने का कोई तरीका है? – seaguest