6-Hibernate_Annotation

كنا قولنا قبل كده ان فيه نوعين من ال mapping

1-عن طريق استخدام ال XML تفضل في المشاريع الكبيرة لاني مش بكون مضطر اني اخش علي كل class واعدل فيه بالعكس انا عندي ملف واحد map.xml  للمشروع كله كل ما بزود column in DB بعدل في الملف ده 

2- باستخدام ال Annotations  ودي اني بكتب annotation في ملف ال POJO  الخاص بكل table in DB  
و ال Annotation  ممكن يكون فوق ال variable او فوق ال getter الخاصة بيه 

وهي بالترتيب 


Entity@ 

 ودي بعرف بيها ان الكلاس ده هيكون mapping  علي table in DB وتحتها علي طول بنكتب
Table(name="")v@  ال2 دول بيتحطو فوق اسم الكلاس

Id@ 

ودي بتكون فوق المتغير اللي هيكون primary key in the table

GeneratedValue(Strategy=GeneratedType.Auto@ 

وده بيخلي ال id  auto increment وعندي ليها 4 انواع
Auto , Identity شبه بعض في انهم مش بيحطوا ارقام متسلسلة يعني ممكن 1,2,8,4,3,77,...
Sequence , Table دول بيتحطو متسلسلين  1,2,3,4,5,...  

 Column(name="" length= nullable=true,unique=true table="")m@

 وده بيكون مطابق لنفس ال column in DB
name : اسم ال column in DB
length : طوله
nullable: ممكن يسمح انه يكون ب null او لا
unique : يعني قيمته مينفعش تتكرر لازم تكون كل القيم غير متشابهة
table: ده لو المتغير ده هيتحفظ في table تاني غير الtable ده
وممكن استخدمهم كلهم او لا حسب استخدامي

Temporal(TemporalType.Date@

 ودي لو عندي Date

Transient@ 

لو عندي متغير مش محتاج اخزنه في DB مثلا لو عندي متغير بحسب فيه الضرائب والحوافز مش محتاج اني اخزنه في ال DB  لاني في الاخر بخزن المرتب النهائي

Lob@

 بتستخدم مع الملفات الكبيرة زي الصور ومرتبط بيها annotation تاني هو

 Basic(FetchType.Lazy@

 وعندي نوعين load
lazy  للملغات الكبيرة و eagar خاص بالملفات الصغيرة

SecondaryTable(name="")b@ 

بستخدمها علي المتغير اللي محتاج اني اخزنه في table تاني    

  




Previous
Next Post »