मैं जावा डेस्कटॉप एप्लिकेशन विकसित कर रहा हूं और दृढ़ता के लिए जेपीए का उपयोग कर रहा हूं। मैं एक समस्या नीचे का उल्लेख किया है:जेपीए - इकाई डिजाइन समस्या
मैं दो संस्थाओं है:
- देश
- शहर
देश निम्न विशेषता है:
- COUNTRYNAME (पी)
सिटी के पश्चात विशेषता है:
- CityName
अब वहाँ के रूप में दो अलग-अलग देशों में ही नाम के दो शहरों हो सकता है, datbase में शहर तालिका के लिए PrimaryKey एक समग्र प्राथमिक बना कुंजी है CityName
और CountryName
का।
अब मेरे सवाल जावा
@Entity
public class Country implements Serializable {
private String countryName;
@Id
public String getCountryName() {
return this.countryName;
}
}
@Entity
public class City implements Serializable {
private CityPK cityPK;
private Country country;
@EmbeddedId
public CityPK getCityPK() {
return this.cityPK;
}
}
@Embeddable
public class CityPK implements Serializable {
public String cityName;
public String countryName;
}
में एक Entity
रूप City
की प्राथमिक कुंजी लागू करने के लिए कैसे अब हम जानते हैं कि City
को Country
से संबंध OneToMany
है और यह दिखाने के लिए है उपरोक्त कोड में रिश्ते, मैंने country
वैरिएबल City
कक्षा में जोड़ा है। country
वस्तु में एक और cityPK
वस्तु में अन्य:
लेकिन तब हम डुप्लिकेट डेटा (countryName
) City
वर्ग 'वस्तु में दो स्थानों में संग्रहीत है।
लेकिन दूसरी तरफ, दोनों जरूरी हैं:
cityPK
में
countryName
वस्तु आवश्यक है, क्योंकि हम इस तरह से समग्र प्राथमिक कुंजी को लागू।country
ऑब्जेक्ट में आवश्यक है क्योंकि यह ऑब्जेक्ट्स के बीच रिलेशनशिप दिखाने का मानक तरीका है।
इस समस्या को हल करने के लिए कैसे करें?
क्या यह इस प्रकार की समस्या से निपटने का एक मानक तरीका है? क्या यह समस्या जेपीए में आम है? –
@ यतेन्द्र: हाँ, यह एक मानक तरीका है (यदि आप सरोगेट कुंजी का उपयोग नहीं करते हैं, जैसा कि पीटर सुझाव देता है)। – axtavt