मेरे पास दो उदाहरण हैं जो पहले @OneToOne unidirectional मैपिंग और दूसरा बिडरेक्शनल है। यूनिडायरेक्शनल मैपिंग में, स्वामित्व वाली टीम में एक कॉलम शामिल होना चाहिए जो अन्य तालिका की आईडी को संदर्भित करता है; फिर बिडरेक्शनल में दोनों में एक-दूसरे के लिए एक विदेशी कुंजी कॉलम होना चाहिए। लेकिन स्वत: उत्पन्न रणनीति के साथ डेटाबेस स्कीमा उत्पन्न करने के बाद, दो उदाहरणों का डेटाबेस स्कीमा पर समान प्रभाव पड़ता है। यूनिडायरेक्शनल मैपिंग सामान्य है लेकिन बिडरेक्शनल उदाहरण में केवल एक विदेशी कुंजी कॉलम होता है, लेकिन इसमें एक-दूसरे की विदेशी कुंजी शामिल होनी चाहिए!@OneToOne unidirectional और bidirectional
यूनिडायरेक्शनल मानचित्रण
@Entity
public class Customer43 {
@Id
@GeneratedValue
private Long id;
private String firstName;
private String lastName;
private String email;
private String phoneNumber;
@OneToOne
@JoinColumn(name = "address_fk")
private Address43 address;
// Getters, Setters and Constructors.
}
@Entity
public class Address43 {
@Id
@GeneratedValue
private Long id;
private String street1;
private String street2;
private String city;
private String state;
private String zipcode;
private String country;
// Getters, Setters and Constructors.
}
द्वि-दिशा मानचित्रण
@Entity
public class Customer44 {
@Id
@GeneratedValue
private Long id;
private String firstName;
private String lastName;
private String email;
private String phoneNumber;
@OneToOne
@JoinColumn(name = "address_fk")
private Address43 address;
// Getters, Setters and Constructors.
}
@Entity
public class Address44 {
@Id
@GeneratedValue
private Long id;
private String street1;
private String street2;
private String city;
private String state;
private String zipcode;
private String country;
@OneToOne(mappedBy = "address")
private Customer44 customer;
// Getters, Setters and Constructors.
}
क्यों है डेटाबेस स्कीमा उत्पादन एक ही है और क्यों करता है दिशाहीन तरह द्विदिश मानचित्रण कार्य?
तो, उनके लिए लाभ या नुकसान क्या है? –
एक यूनिडायरेक्शनल एसोसिएशन का लाभ यह है कि इसे प्रबंधित करना आसान है, क्योंकि आपको केवल एक तरफ बनाए रखना है। एक बिडरेक्शनल एसोसिएशन का लाभ यह है कि आप इसे दोनों दिशाओं में नेविगेट कर सकते हैं (किसी ग्राहक का पता प्राप्त करें, या पते के ग्राहक को प्राप्त करें)। –
क्या यह OneToMany और ManyToOne पर लागू होता है? –