مشخصات مقاله
-
964
-
0.0
-
2518
-
0
-
0
درس 31 : آموزش آدرس دهی Association Mapping با روش one-to-one در Hibernate
آموزش آدرس دهی Association Mapping با روش one-to-one در Hibernate :
شما می توانید روش آدرس دهی one to one mapping را از دو راه انجام دهید :
- به وسیله المنت many-to-one.
- به وسیله المنت many-to-one.
در این درس، قصد داریم روش اجرای آدرس دهی one to one mapping را به وسیله المنت many –to-one آموزش دهیم. در چنین موردی، یک کلید خارجی foreign key در جدول اصلی برنامه ایجاد می شود.
در این مثال، هر employee فقط یک address داشته و هر address فقط متعلق به یک employee است. همچنین در این مثال ما از استراتژی روابط دو طرفه یا Bridirectional Association استفاده می کنیم.
برای اجرای مثال، مراحل زیر را به ترتیب انجام دهید :
1)ایجاد کلاس Persistent Class بر آدرس دهی one to one mapping :
در مثال دو کلاس Persistent Class با نام های Employee.java و Address.java وجود دارد. کلاس Employee حاوی یک رفرنس به کلاس Address می باشد و برعکس.
فایل Employee.java
package com.javatpoint;
public class Employee {
private int employeeId;
private String name,email;
private Address address;
//setters and getters
}
فایل Address.java
package com.javatpoint;
public class Address {
private int addressId;
private String addressLine1,city,state,country;
private int pincode;
private Employee employee;
//setters and getters
}
2)ایجاد فایل آدرس دهی Mapping files جهت کلاس Persistent :
مثال دارای دو فایل آدرس دهی mapping file به نام های employee.hbm.xml و address.hbm.xml است که کد آن ها در ادامه قرار داده شده است.
فایل employee.hbm.xml
در این فایل آدرس دهی mapping file ما از المنت many –to- one با خاصیت Unique=”true” جهت آدرس دهی one to many mapping استفاده کرده ایم :
فایل address.hbm.xml
کد زیر فایل ساده آدرس دهی mapping file جهت کلاس Address را نشان می دهد :
3)ایجاد فایل تنظیمات Configuration file :
فایل تنظیمات Configuration file حاوی اطلاعات لازم جهت کار با پایگاه داده و mpping file است :
فایل hibernate.cfg.xml
update org.hibernate.dialect.Oracle9Dialect jdbc:oracle:thin:@localhost:1521:xe system oracle oracle.jdbc.driver.OracleDriver
4)ایجاد کلاس های لازم جهت استخراج fetch و ذخیره اطلاعات :
فایل Store.java
package com.javatpoint;
import org.hibernate.cfg.*;
import org.hibernate.*;
public class Store {
public static void main(String[] args) {
Configuration cfg=new Configuration();
cfg.configure("hibernate.cfg.xml");
SessionFactory sf=cfg.buildSessionFactory();
Session session=sf.openSession();
Transaction tx=session.beginTransaction();
Employee e1=new Employee();
e1.setName("Ravi Malik");
e1.setEmail("ravi@gmail.com");
Address address1=new Address();
address1.setAddressLine1("G-21,Lohia nagar");
address1.setCity("Ghaziabad");
address1.setState("UP");
address1.setCountry("India");
address1.setPincode(201301);
e1.setAddress(address1);
address1.setEmployee(e1);
session.persist(e1);
tx.commit();
session.close();
System.out.println("success");
}
}
فایل Fetch.java
package com.javatpoint;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Fetch {
public static void main(String[] args) {
Configuration cfg=new Configuration();
cfg.configure("hibernate.cfg.xml");
SessionFactory sf=cfg.buildSessionFactory();
Session session=sf.openSession();
Query query=session.createQuery("from Employee e");
List list=query.list();
Iterator itr=list.iterator();
while(itr.hasNext()){
Employee emp=itr.next();
System.out.println(emp.getEmployeeId()+" "+emp.getName()+" "+emp.getEmail());
Address address=emp.getAddress();
System.out.println(address.getAddressLine1()+" "+address.getCity()+" "+
address.getState()+" "+address.getCountry());
}
session.close();
System.out.println("success");
}
}