में एम्बेड करने योग्य वर्ग के लिए आईडी प्रकारों को कॉन्फ़िगर करते समय अजीब समस्या मेरे वर्तमान कार्यान्वयन में मेरे पास प्रत्येक डीबी तालिका के लिए अलग इकाई वर्ग हैं। मैं eclipselink-2.5.2 के साथ जेपीए का उपयोग कर रहा हूँ। यह मेरे लिए ठीक काम कर रहा है लेकिन किसी बिंदु पर जब डेटा बड़ा होता है, तो यह लटकता है। यही कारण है कि मैंने @Embedded, @Embeddable और @EmbeddedId का उपयोग शुरू करने का निर्णय लिया। ऐसा करने के दौरान मुझे एक त्रुटि मिल रही है जो मेरे लिए बहुत अजीब है। यहां पूर्ण स्टैकट्रैक पोस्ट किया गया है: https://gist.githubusercontent.com/tjDudhatra/b955812e0d1a71cf97f1/raw/11ea458869e24baae744530417ac99bc877ed514/gistfile1.txtEclipseLink-2.5.2
विशिष्ट होने के नाते, मुझे आपको सटीक परिदृश्य दें जिससे मुझे अपवाद मिल रहा है। इस कोड ब्लॉक पर विचार करें जिसमें तीन वर्ग हैं। एक @Entity के रूप में एनोटेट किया गया है और अन्य twos @Embeddable के रूप में एनोटेटेड हैं। मुझे पता है कि एक वर्ग में हम @Id और @EmbeddedId को परिभाषित नहीं कर सकते हैं और मैं उस तरह से नहीं किया है, तो भी सर्वर की तैनाती करते हुए, मैं अपवाद है जो केवल कहते हो रही है कि:
[वर्ग org.apache । {SomeClass}] है दोनों एक @EmbdeddedId (विशेषता पर [id]) और एक @Id (विशेषता पर []। दोनों आईडी प्रकार एक ही इकाई पर निर्दिष्ट नहीं किया जा सकता है।
@Entity
@Table(name="user")
public class User {
@ID
public Long id;
@Column(name="userCode")
public String userCode;
@ElementCollection
@CollectionTable(name = "address", joinColumns = @JoinColumn(name = "user_id"))
public List<Address> addressList;
....
}
@Embeddable
public class Address {
@EmbeddedId
@Column(name = "id")
public Long id;
@Column(name="userId")
public Long userId;
@Column(name="address-line-1")
public String addressLine1;
@Column(name="address-line-2")
public String addressLine2;
@ElementCollection
@CollectionTable(name = "phone", joinColumns = @JoinColumn(name = "user_id"))
protected List<Phone> phoneList;
....
}
@Embeddable
public class Phone {
@EmbeddedId
@Column(name = "id")
public Long id;
@Column(name="contact_no")
public String contactNo;
@Column(name="country_code")
public int countryCode;
@Column(name="address_id")
public int addressId;
....
}
कृपया अगर मुझे अधिक जानकारी की आवश्यकता है और किसी भी तरह की मदद की सराहना की जाएगी तो मुझे बताएं।
धन्यवाद,
ओह मैं माफी माँगता हूँ, यह EclipseLink-2.5.2 –