بتاريخ: 15 نوفمبر 200916 سنة comment_176589 طبعا سؤالي مش هيجوبني عليه كالعاده حد غير هاله .انا عندي فورم من 2 تابل او معني اصح 2 entity object فانا عايز بمجرد انه يضغط علي زر جديد الخاص بانتيتي من الاتنين الي الفورم يعمل صف جديد برضه للحقول الخاصه بالانتيتي التاني انا عملت زر create inseart وعدلت في الميثود الخاصه بيه في maneged bean بحيث انه ينادي علي ميثود create الخاصه بالانتيتي التاني.فالسؤال ازاي اقدر اجيب ال AttributeList الخاصه ب انتيتي معين بحيث اني اباصيها في الميثود ()create . وهل فيه طريقه افضل من دي انفذ بيها الي انا محتاجه .معلش ياهاله تقلت عليكي عارف اني تلميذ خايب بس اهو كنا فين وبقينا فين . تقديم بلاغ
بتاريخ: 15 نوفمبر 200916 سنة كاتب الموضوع comment_176605 صحيح نسيت اقول اني جربت updatable view بس دايما مشاكل مع ال pk , fk تقديم بلاغ
بتاريخ: 15 نوفمبر 200916 سنة comment_176622 صدقنى يا محمد مفيش هنا حكاية تلميذ أو أستاذ كلنا بنتعلم من بعض و اللى فهمته من كلامك انك عاوز تعمل insert فى two tables فى نفس الوقت طبعا الحكاية دى ممكن نعملها باكتر من طريقة بس انا مش فاهمه هل انت عاوز انه لما المستخدم يدخل فى احد الجدولين الجدول التانى القيم الخاصة بيه تبقى Default او الuser يقوم برضه بادخالها وفى اى من الحالتين لازم بعض الامور تبقىProgrammatically لان لما بنعمل updateable view object مبنى على اكتر من Entity فواحدة منEntity بتبقى updatable والتانية بتبقى Reference يعنى منقدرش ندخل فيها البيانات بالطريقة العادية حديك مثال كان فى مدونه على الادخال فى اكتر من جدول باستخدام doDML مثلا عاوزين لما المستخدم يدخل بيانات فى جدول Hr.Locations يتم ادخال Row تانى فى الDepartments طبعا القيم حتبقى Default فى الجدول التانى حنعمل two entity هما (Locations,Departments) وحنعمل Updatable view مبنى على الLocationsاولا:DepartmentId والLocationId حيبقوا مبنيين على DBSequence على اساس override على method create فى الكلاس الخاصة بالEntityثانيا:فى كلاس LocationsImpl حنكتب الكود التالى protected void doDML(int operation, TransactionEvent e) { super.doDML(operation, e); if (operation==1){ EntityDefImpl deptdef=DepartmentsImpl.getDefinitionObject(); DepartmentsImpl newdept=(DepartmentsImpl)deptdef.createInstance2(getDBTransaction(),null); newdept.setDepartmentName("Default is"+this.getCity()); newdept.setLocationId(this.getLocationId()); } } وفى الصفحة حتنزل viewobject LocationsView على هيئة ADF Creation form وحنسحب Commit من Data control Palette ونعملها Drop على الصفحة,لما نعملRun للصفحة حنلاحظ ان عند ادخال Row فى الLocations فيه Row كمان حيدخل فى الDepartments تم تعديل 15 نوفمبر 200916 سنة بواسطة Hala Salem تقديم بلاغ
بتاريخ: 17 نوفمبر 200916 سنة كاتب الموضوع comment_176772 شكرا ياهاله انا عملت Updatable View علي 2 انتيتي و ظبطها المره دي .حاليا هي بتعمل انسرت في ال 2 تابل الي هي معموله عليهم كويس . بس طبعا ال delete مش هتنفع فاهعدلها كودينج. انا لي راي بسيط في المثال الي عملتيه ان كل ما يعمل انسيرت في التابل ده هيرمي صف جديد في التابل التاني بدون ما اكون محتاجه لاننا عملناها في ال doDml بس ال Updatable View علي الاتنين انتيتي هتعمل انسيرت لصف جديد هنا وهنا لكن ف اي حاله تانيه او ممكن فورمه لتابل واحد بس فيهم مش ههترمي صف جديد في التابل التاني لاننا بعيد عن ال doDML. ولا كلامي غلط . تقديم بلاغ
بتاريخ: 18 نوفمبر 200916 سنة comment_176897 لا كلامك مش غلط بس فهمك للمثال هو اللى خاطىء المثال دى الUser بيقوم فه بالادخال فى Entity واحده فقط بينما يتم الادخال فى الجدول التانى بناء على البيانات اللى ا دخلها فى الجدول الاول من غير ما يعرف وعلى العموم الحكاية دى ليها استخدام تانى خالص غير Updatable view مثل ادخال قيم Default مبنيه على اختيارات الuser سواء فى نفس الجدول او فى جدول تانى بالنسبة updatable view object فاذا كان مبنى على اكتر من entity فالاولى بتبقى primary او updatable والباقى بيبقوا reference يعنى مينفعش نعدل فيهم باى طريقة الا لو عملت uncheck على reference وخليتهم كمان updatable زى الاولى ولكن خللى بالك فى الحالة دى مينفعش تقوم بالادخال فى entity واحده فقط اذا كانت التانية فيها حقول mandatory تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.