के अंदर विदेशी कुंजी मैपिंग JPA
के लिए मैं eclipselink
का उपयोग कर रहा हूं। मेरे पास एक इकाई है, जिसमें संयुक्त कुंजी दो फ़ील्ड से बना है। मेरे एम्बेड करने योग्य प्राथमिक कुंजी वर्ग के फ़ील्ड (सदस्य) हैं।एंबेडेबल क्लास
@Embeddable
public class LeavePK {
@ManyToOne(optional = false)
@JoinColumn(name = "staffId", nullable = false)
private Staff staff;
@Temporal(TemporalType.TIMESTAMP)
private Calendar date;
//setters and getters
}
मेरे इकाई एक कर्मचारी से संबंधित डेटा छोड़ धारण करने के लिए जा रहा है, तो मैं स्टाफ वस्तु गठबंधन और तारीख छोड़ समग्र कुंजी निर्माण करने के लिए कोशिश कर रहा हूँ। मेरे तर्क के अलावा, यह मुझे एम्बेड करने योग्य वर्ग के अंदर एक विदेशी कुंजी मैपिंग करने की अनुमति नहीं दे रहा है। जब मैं जेपीए टूल्स का उपयोग करने का प्रयास करता हूं -> एंटीटी से टेबल्स जेनरेट करें, यह नीचे की त्रुटि देता है, जो बताता है, लेकिन मुझे यह नहीं मिल रहा है।
org.eclipse.persistence.exceptions.ValidationException
Exception Description: The mapping [staff] from the embedded ID class [class rs.stapp.entity.LeavePK] is an invalid mapping for this class. An embeddable class that is used with an embedded ID specification (attribute [leavePK] from the source [class rs.stapp.entity.Leave]) can only contain basic mappings. Either remove the non basic mapping or change the embedded ID specification on the source to be embedded.
क्या इसका मतलब है, मेरे पास एक कुंजी (समग्र कुंजी से) नहीं हो सकती है जो कि एक विदेशी कुंजी भी है। क्या इस ईआरएम को पूरा करने का कोई वैकल्पिक तरीका है? कृपया मदद करे। धन्यवाद