الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

One Form Based On 2 Entity

Featured Replies

بتاريخ:

طبعا سؤالي مش هيجوبني عليه كالعاده حد غير هاله .
انا عندي فورم من 2 تابل او معني اصح 2 entity object فانا عايز بمجرد انه يضغط علي زر جديد الخاص بانتيتي من الاتنين الي الفورم يعمل صف جديد برضه للحقول الخاصه بالانتيتي التاني
انا عملت زر create inseart وعدلت في الميثود الخاصه بيه في maneged bean بحيث انه ينادي علي ميثود create الخاصه بالانتيتي التاني.
فالسؤال ازاي اقدر اجيب ال AttributeList الخاصه ب انتيتي معين بحيث اني اباصيها في الميثود ()create .
وهل فيه طريقه افضل من دي انفذ بيها الي انا محتاجه .
معلش ياهاله تقلت عليكي عارف اني تلميذ خايب بس اهو كنا فين وبقينا فين .

بتاريخ:
  • كاتب الموضوع

صحيح نسيت اقول اني جربت updatable view بس دايما مشاكل مع ال pk , fk

بتاريخ:

صدقنى يا محمد مفيش هنا حكاية تلميذ أو أستاذ كلنا بنتعلم من بعض و اللى فهمته من كلامك انك عاوز تعمل 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

تم تعديل بواسطة Hala Salem

بتاريخ:
  • كاتب الموضوع

شكرا ياهاله انا عملت Updatable View علي 2 انتيتي و ظبطها المره دي .
حاليا هي بتعمل انسرت في ال 2 تابل الي هي معموله عليهم كويس . بس طبعا ال delete مش هتنفع فاهعدلها كودينج.
انا لي راي بسيط في المثال الي عملتيه ان كل ما يعمل انسيرت في التابل ده هيرمي صف جديد في التابل التاني بدون ما اكون محتاجه لاننا عملناها في ال doDml بس ال Updatable View علي الاتنين انتيتي هتعمل انسيرت لصف جديد هنا وهنا لكن ف اي حاله تانيه او ممكن فورمه لتابل واحد بس فيهم مش ههترمي صف جديد في التابل التاني لاننا بعيد عن ال doDML. ولا كلامي غلط .

بتاريخ:

لا كلامك مش غلط بس فهمك للمثال هو اللى خاطىء المثال دى الUser بيقوم فه بالادخال فى Entity واحده فقط بينما يتم الادخال فى الجدول التانى بناء على البيانات اللى ا دخلها فى الجدول الاول من غير ما يعرف وعلى العموم الحكاية دى ليها استخدام تانى خالص غير Updatable view مثل ادخال قيم Default مبنيه على اختيارات الuser سواء فى نفس الجدول او فى جدول تانى

بالنسبة updatable view object فاذا كان مبنى على اكتر من entity فالاولى بتبقى primary او updatable والباقى بيبقوا reference يعنى مينفعش نعدل فيهم باى طريقة الا لو عملت uncheck على reference وخليتهم كمان updatable زى الاولى ولكن خللى بالك فى الحالة دى مينفعش تقوم بالادخال فى entity واحده فقط اذا كانت التانية فيها حقول mandatory

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.