سؤال

هدف

  1. استدعاء أ CREATE TEMPORARY TABLE بيان في السبات دون استخدام SQL الأصلي.وهذا يعني استخدام واجهات برمجة تطبيقات HQL أو Hibernate فقط.
  2. حفظ الكائنات في الجدول المؤقت.
  3. استدعاء إجراء مخزن يستخدم الجداول الموجودة والجدول المؤقت.
  4. DROP الجدول المؤقت عند الانتهاء.(أعلم أن ذلك ليس ضروريًا، ولكن أعتقد أن القيام بذلك عادة جيدة).

خلفية

  1. أنا على دراية بـ SQL ولكني جديد على السبات.
  2. أنا مجبر على استخدام السبات في المشروع بسبب قرار شخص ما.
  3. سأقوم بحفظ نموذج ويب في قاعدة بيانات أوراكل.
  4. يحتوي نموذج الويب على جدول مليء بالحقول النصية (صممها شخص آخر)، واحد في كل خلية.
  5. عندما ينقر المستخدم Save, ، القيم يجب يتم حفظها في معاملة واحدة.
  6. يتم دعم نموذج الويب من خلال عرض قاعدة البيانات.
  7. يتم إنشاء عرض قاعدة البيانات من جدول قاعدة البيانات باستخدام نمط EAV.(يتم ذلك لأن الأعمدة ديناميكية إلى حد ما.)
  8. يتم تصميم كل حقل نصي في نموذج الويب بواسطة صف واحد في جدول قاعدة البيانات.
  9. عرض استخدامات نموذج الويب SELECT تصريحات حول الرأي.
  10. تحديث استخدامات نموذج الويب UPDATE تصريحات على الرأي الذي يدعو INSTEAD OF الزناد للعرض.
  11. يتم تحديث القيم التي تم تغييرها فقط.هناك مسار التدقيق لكل تحديث.
  12. إذا تم تحديث أي من القيم بواسطة مستخدم آخر دون إشعار المستخدم، فسيتم التراجع عن المعاملة.فيما يلي مثال لمثل هذا السيناريو: (I) قيمة أ 4 عندما يعرض المستخدم نموذج الويب (II) يقوم مستخدم آخر بتحديث نفس الحقل ل 5 (III) يقوم المستخدم الأول بتحديث الحقل إلى 2 ويقدم نموذج الويب.

الحل المقترح أصلا

  1. استخدم AJAX (jQuery) لاكتشاف التغييرات في حقول النص، وأرسل فقط تلك التي قام المستخدم بتغييرها.
  2. ومع ذلك، يجب اكتشاف التغييرات التي أجراها مستخدم آخر في قاعدة البيانات.

الحل من المفترض أن يعمل بشكل أفضل

  1. عندما ينقر المستخدم Save, ، قم بإنشاء جدول مؤقت (الجدول المؤقت هو جدول تشاهده فقط الجلسة/الاتصال الحالي، ويتم إسقاطه تلقائيًا عند إغلاق الجلسة/عند قطع الاتصال) وحفظ الكائنات (الخلايا) في الجدول المؤقت.
  2. ابدأ الصفقة.
  3. قفل بعض الجداول الموجودة (أو الصفوف ذات الصلة فقط، للأداء).
  4. مقارنة البيانات المقدمة مع البيانات الموجودة.
  5. إذا تم إجراء أي تغيير غير ملحوظ، قم بالتراجع عن المعاملة.
  6. قم بتحديث الصفوف الضرورية.
  7. قم بتنفيذ المعاملة وفتح الجداول.
  8. قم بإسقاط الجدول المؤقت.

هل هناك أي أفكار؟

هل كانت مفيدة؟

المحلول

هذا لا يجيب على متطلباتك بالضبط ولكن نظرًا لعدم وجود محاولات للإجابة ...هل فكرت في استخدام جدول CSV مؤقت باستخدام شيء من هذا القبيل http://csvjdbc.sourceforge.net/.

على الرغم من أنه لا يتوافق مع متطلبات القيام بذلك من خلال السبات، إلا أنه لا يتوافق مع قاعدة البيانات ومتعدد المنصات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top