jpa
वन टू वन मैपिंग
खोज…
पैरामीटर
टिप्पणी | उद्देश्य |
---|---|
@TableGenerator | जनरेटर का नाम और तालिका नाम निर्दिष्ट करता है जहां जनरेटर पाया जा सकता है |
@GeneratedValue | पीढ़ी की रणनीति को निर्दिष्ट करता है और जनरेटर के नाम को संदर्भित करता है |
@एक से एक | कर्मचारी और डेस्क के बीच एक से एक संबंध निर्दिष्ट करता है, यहां कर्मचारी संबंध का मालिक है |
mappedBy | यह तत्व संबंध के रिवर्स साइड पर प्रदान किया जाता है। यह द्विदिश संबंध को सक्षम बनाता है |
कर्मचारी और डेस्क के बीच एक से एक संबंध
कर्मचारी और डेस्क के बीच एक से एक द्विदिश संबंध पर विचार करें।
Employee.java
@Entity
public class Employee {
@TableGenerator(name = "employee_gen", table = "id_gen", pkColumnName = "gen_name", valueColumnName = "gen_val", allocationSize = 100)
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "employee_gen")
private int idemployee;
private String firstname;
private String lastname;
private String email;
@OneToOne
@JoinColumn(name = "iddesk")
private Desk desk;
// getters and setters
}
Desk.java
@Entity
public class Desk {
@TableGenerator(table = "id_gen", name = "desk_gen", pkColumnName = "gen_name", valueColumnName = "gen_value", allocationSize = 1)
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "desk_gen")
private int iddesk;
private int number;
private String location;
@OneToOne(mappedBy = "desk")
private Employee employee;
// getters and setters
}
टेस्ट कोड
/* Create EntityManagerFactory */
EntityManagerFactory emf = Persistence
.createEntityManagerFactory("JPAExamples");
/* Create EntityManager */
EntityManager em = emf.createEntityManager();
Employee employee;
employee = new Employee();
employee.setFirstname("pranil");
employee.setLastname("gilda");
employee.setEmail("sdfsdf");
Desk desk = em.find(Desk.class, 1); // retrieves desk from database
employee.setDesk(desk);
em.persist(employee);
desk = em.find(Desk.class, 1); // retrieves desk from database
desk.setEmployee(employee);
System.out.println(desk.getEmployee());
डेटाबेस आरेख को नीचे के रूप में दर्शाया गया है।
- @JoinColumn एनोटेशन उस इकाई की मैपिंग पर जाता है, जिसमें शामिल होने वाली तालिका में मैप किया जाता है। हमारे मामले में, एम्प्लॉई टेबल में जॉइन कॉलम है, इसलिए @ जॉइनकॉल्यूमेंट कर्मचारी इकाई के डेस्क फील्ड पर है।
- मैप्डबॉय तत्व को इकाई में @OneToOne एसोसिएशन में निर्दिष्ट किया जाना चाहिए जो रिश्ते के रिवर्स साइड है। यानी वह इकाई जो डेटाबेस पहलू पर ज्वाइन कॉलम प्रदान नहीं करती है। हमारे मामले में, डेस्क व्युत्क्रम इकाई है।
पूरा उदाहरण यहां पाया जा सकता है
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow