كنا قولنا قبل كده ان فيه نوعين من ال mapping
1-عن طريق استخدام ال XML تفضل في المشاريع الكبيرة لاني مش بكون مضطر اني اخش علي كل class واعدل فيه بالعكس انا عندي ملف واحد map.xml للمشروع كله كل ما بزود column in DB بعدل في الملف ده
2- باستخدام ال Annotations ودي اني بكتب annotation في ملف ال POJO الخاص بكل table in DB
و ال Annotation ممكن يكون فوق ال variable او فوق ال getter الخاصة بيه
وهي بالترتيب
Table(name="")v@ ال2 دول بيتحطو فوق اسم الكلاس
Auto , Identity شبه بعض في انهم مش بيحطوا ارقام متسلسلة يعني ممكن 1,2,8,4,3,77,...
Sequence , Table دول بيتحطو متسلسلين 1,2,3,4,5,...
name : اسم ال column in DB
length : طوله
nullable: ممكن يسمح انه يكون ب null او لا
unique : يعني قيمته مينفعش تتكرر لازم تكون كل القيم غير متشابهة
table: ده لو المتغير ده هيتحفظ في table تاني غير الtable ده
وممكن استخدمهم كلهم او لا حسب استخدامي
lazy للملغات الكبيرة و eagar خاص بالملفات الصغيرة
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 tableGeneratedValue(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 DBname : اسم ال column in DB
length : طوله
nullable: ممكن يسمح انه يكون ب null او لا
unique : يعني قيمته مينفعش تتكرر لازم تكون كل القيم غير متشابهة
table: ده لو المتغير ده هيتحفظ في table تاني غير الtable ده
وممكن استخدمهم كلهم او لا حسب استخدامي
Temporal(TemporalType.Date@
ودي لو عندي DateTransient@
لو عندي متغير مش محتاج اخزنه في DB مثلا لو عندي متغير بحسب فيه الضرائب والحوافز مش محتاج اني اخزنه في ال DB لاني في الاخر بخزن المرتب النهائيLob@
بتستخدم مع الملفات الكبيرة زي الصور ومرتبط بيها annotation تاني هوBasic(FetchType.Lazy@
وعندي نوعين loadlazy للملغات الكبيرة و eagar خاص بالملفات الصغيرة
EmoticonEmoticon