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

درس نوزدهم : آموزش آدرس دهی مجموعه ها (Collection) در Hibernate

آموزش آدرس دهی مجموعه ها (Collection) در Hibernate

آموزش آدرس دهی مجموعه ها (Collection) در Hibernate شما می توانید عناصر مجموعه ای (Collection Elements) موجود در کلاس اصلی Persistent Class را در Hibernate آدرس دهی (mapping) کنید.
برای این منظور، بایستی نوع داده ای مجموعه را در کلاس Persistent Class، از یکی از انواع زیر تعیین کنید :

  • java.util.List
  • java.util.Set
  • java.util.SortedSet
  • java.util.Map
  • java.util.SortedMap
  • vjava.util.Collection
  • org.hibernate.usertype.UserCollectionType

کلاس اصلی و خام برنامه (Persistent Class) بایستی به صورت زیر برای عنصر مجموعه ای تعریف شود :

 
package com.javatpoint;  
  
import java.util.List;  
  
public class Question {  
private int id;  
private String qname;  
private List answers;//List can be of any type  
  
//getters and setters  
  
}  
            

آموزش روش آدرس دهی مجموعه در فایل mapping :

عنصرهای زیادی در المنت هستند که از آن ها می توان برای آدرس دهی مجموعه استفاده کرد. این عناصر عبارتند از ، ، و .
در کد زیر نحوه آدرس دهی Persistent Class را به وسیله المنت های فوق نشان داده ایم :

            
            
            
            
            
            
            
            
            
            
            
            
            
            

در کد فوق 3 عنصر به کار رفته اند که عبارتند از :

  • المنت برای تعیین کلید خارجی (Foreign key) در جدول فوق به کار رفته است.
  • المنت برای تعیین نوع داده ای به کار رفته است. List و Map ، مجموعه های ایندکس شده هستند.
  • المنت برای تعیین المنت اصلی مجموعه به کار می رود.

در کد زیر ، آدرس دهی mapping در صورتی که کلاس اشیای متنی (String objects) را نگهداری کند، تعیین شده است اما اگر مجموعه رفرنس موجودیت ها را نگهداری می کند (برای مثال اشیای یک کلاس دیگر)، بایستی المنت های و را در کد تعیین کنیم. در نهایت کد کلاس Persistent Class به صورت زیر خواهد شد :

 
package com.javatpoint;  
  
import java.util.List;  
  
public class Question {  
private int id;  
private String qname;  
private List answers;//Here, List stores the objects of Answer class  
  
//getters and setters  
  
}  
            
 
package com.javatpoint;  
import java.util.List;  
public class Answer {  
private int id;  
private String answer;  
private String posterName;  
//getters and setters  
}  

همچنین فایل آدرس دهی mapping نیز به صورت زیر می باشد :

 
            
            
            
            
            
            
            
            
            
            
            
            
            
            

در کد فوق، List با روش ارتباط one-to-many (یک به چند) آدرس دهی شده است. در این روش، ممکن است جواب های مختلفی برای یک سوال وجود داشته باشد.

فهمیدن عنصر key :

عنصر key برای تعیین کلید خارجی Foreign key در جدول های متصل به هم بر مبنای شناسه اصلی به کار می رود. عنصر Foreign key به صورت پیش فرض nullable است. بنابراین برای کلیدهای خارجی غیر nullable، بایستی خاصیت not-null را به صورت زیر تعیین کنیم :

 
                  
            

خواص مهم عنصر key مقادیر column، an-delete، Unique، Update، not-null و Property-ref هستند که به صورت نمونه می توان آن ها را همانند کد زیر تعریف نمود :

  
            

مجموعه های ایندکس شده یا indexed collections :

به طور کلی، مجموعه ها به دو دسته تقسیم می شوند :

  • مجموعه های ایندکس شده یا indexed Collections
  • مجموعه های غیر ایندکسی یا non-indexed Collections

برای مثال مجموعه های List و Map از نوع indexed و مجموعه های bag و set از نوع non-indexed هستند.
در اینجا، مجموعه های indexed به معنای آن است که در مجموعه بایستی یک المنت اضافه به نام نیز تعیین شود.

المنت های مجموعه ای یا Collection Elements :

المنت های مجموعه ای می توانند شامل مقادیر (Value) و یا رفرس موجودیت ها (اشیای یک کلاس دیگر) شوند. به طور کلی، ما 4 نوع مجموعه داریم :

  • Element
  • Component-element
  • One-to-many
  • Many-to-many

المنت های Component-element و element برای مقادیر معمولی مثل String یا int به کار می روند اما المنت های one-to-many و many-to-many برای آدرس دهی و فرض موجودیت ها (entity refrence) به کار می روند.
در درس های بعدی، به بررسی کار با المنت های List، Bag و Set خواهیم پرداخت.

1395/06/30 2697 934
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

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