मुझे एक भयानक डिज़ाइन के साथ विरासत डेटाबेस में जेपीए लागू करना होगा। दुर्भाग्यवश इसे बदलना संभव नहीं है। सौभाग्य से केवल पढ़ने के लिए ही पहुंच है।@ManyToMany तालिका में शामिल किए बिना (विरासत डेटाबेस)
मुझे मिली सबसे अजीब चीज़ों में से एक एक "कई से कई" संबंधों में शामिल होने के बिना (या मध्यवर्ती) तालिका है। इस तालिका संरचना का सरलीकरण है:
USER ACCESS
---- ------
ID int primary key ID int primary key
NAME varchar2(20) NAME varchar2(20)
ACCESS_GROUP int ACCESS_GROUP int
- ACCESS_GROUP कॉलम दोनों तालिकाओं
- एक उपयोगकर्ता n पहुंच
- एक पहुंच एन उपयोगकर्ता से संबंधित हो सकता से संबंधित हो सकता में दोहराया जा सकता है
public class User {
private Integer id;
private String name;
@ManyToMany private List<Access> accessList;
}
public class Access {
private Integer id;
private String name;
@ManyToMany private List<User> userList;
}
:
"सैद्धांतिक रूप" इस टेबल जावा वर्गों के साथ इस तरह से मैप किया जाना चाहिए
लेकिन मुझे लगता है कि यह संभव नहीं है। जेपीए में इस टेबल तक पहुंचने और उनके माध्यम से नेविगेट करने का सबसे अच्छा तरीका आपको क्या लगता है?
वास्तव में, यह एक एम नहीं है। आप कैसे स्टोर करते हैं कि उपयोगकर्ता या एक्सेस पंक्ति दो एक्सेस समूहों का हिस्सा है? इसे हासिल करने का एकमात्र तरीका अन्य स्तंभों (पीके के अलावा) को डुप्लिकेट करना होगा और उस स्थिति में, डिजाइन के परिप्रेक्ष्य से, वे अलग-अलग संस्थाएं हैं। इसके बजाय, आपके पास दो स्वतंत्र 1: एम संबंध हैं। – Thomas