کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

درس 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");  
}  
}  

            
1395/07/11 2518 964
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...