هل من الممكن وأو الموصى بها لدعم اثنين من تطبيقات النقابة؟

StackOverflow https://stackoverflow.com/questions/1008499

  •  06-07-2019
  •  | 
  •  

سؤال

لدينا أحد التطبيقات التي نقوم بتطوير ونحن ننظر دعم اثنين من تطبيقات JPA مختلفة.

في هذه اللحظة نحن نستخدم openjpa ووإلى حد ما اختباره بشكل جيد التعليمات البرمجية.

وتبادلت أنا في toplink، ركض الاختبارات، وجدت مجموعة من الإخفاقات.

وكنت أعتقد أنه بسبب JPA هو معيار لا ينبغي أن يكون هناك أي اختلافات!

والأساس المنطقي لدعم اثنين من تطبيقات النقابة هو حتى نتمكن من تشغيل التطبيق على خوادم متعددة.

وهكذا 1stly، هل صحيح أن هناك تعيين واحد الى واحد بين التنفيذ والخادم. أي يمكنني استخدام toplink على WAS على سبيل المثال، أو openjpa على Glassfish؟

والسؤال 2ND قبل أن التحقيق في مختلف إخفاقات أخرى غير، والمواصفات JPA، هل هو واسع وذلك لجعل دعم اثنين من تطبيقات غير عملي؟ يجب أن تكلف نفسها عناء محاولة لجعل عمل الرمز مع كل من؟

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

المحلول

لاحظنا نفس الشيء عندما كنا باستخدام TopLink أساسيات وهاجر إلى EclipseLink. كسر رمز لنا في كثير من الأماكن على الرغم من ويستند EclipseLink على قاعدة كود نفسها!

ولقد وجدت أن معظم الحالات كانت يرجع ذلك إلى حقيقة أن TopLink أساسيات لم تلتزم تماما لمواصفات JPA (على سبيل المثال الاستفسارات الأم قائمة المتجهات الخ العودة). أتوقع أن قابلية بين EclipseLink والسبات سيكون أفضل، ولكن ربما لم يكن مثاليا.

في نقطة معينة من الزمن وربما كنت ترغب في استخدام بعض الملحقات الخاصة البائعين، مثل التخزين المؤقت. لهذا السبب أنصح اختيار مزود JPA وأول استخدام وظيفة فقط المحددة في المواصفات النقابة. إذا بعد حين كنت لا تزال سعيدة مع مزود معين، والعصا معه والبدء في الاستفادة من وظائف محددة بائع.

وأنا لا أعتقد أن اختيارك للتطبيق الخادم يحد خيارات النقابة الخاصة بك أو العكس بالعكس. على الأقل أنا لست على علم بأي قيود.

نصائح أخرى

لا، هذا ليس صحيحا - خوادم التطبيقات لا تفرض أي تطبيقات نقابة الصحفيين، ويجب أن تكون قادرا على استخدام OpenJPA مع خوادم التطبيقات المختلفة. تماما مثل يمكنك استخدام السبات في أي مكان يمكنك استخدام أي تطبيق نقابة الصحفيين الآخرين. نعم، قد يكون لديك بعض الصراعات جرة واستكشاف الأخطاء وإصلاحها الحصول على القيام به قبل الحصول على الأمور في نصابها الصحيح ...

لا، انها ليست غير عملية لجعل عمل الشفرة لاثنين أو أكثر من تطبيقات النقابة. ولكن الغرض من هذه العملية دون الحاجة الملموسة غير عملي إلى حد ما. بشكل عام، كنت أفضل حالا اختيار تنفيذ JPA التي تلبي الاحتياجات الخاصة بك أفضل ... ولكن، مرة أخرى، لا أستطيع تخيل الظروف عند استخدام تطبيقات مختلفة JPA بالتبادل قد أصبح ضرورة: متطلبات العملاء، والقيود الترخيص، دعم قاعدة بيانات مختلفة، منصة مختلفة الدعم (مثل الجوال، جزءا لا يتجزأ، ...).

وعادة، تنفيذ JPA هو شاملة من مواصفات. إذا كنت حريصا على تقليل الاعتماد على بائع سمات محددة، ويجب أن يكون تطبيق المحمولة.

ولكن من الناحية العملية يمكن أن تكون هناك اختلافات طفيفة بين implemantations التي تجعل من الصعب تقديم طلب حقا عبر نقابة الصحفيين.

في بلدي opnion فمن الأفضل التمسك مستوى قدر الإمكان بحيث ترقية إلى تنفيذ JPA الآخرين ينبغي أن يكون ممكنا مع تغيرات طفيفة. إذا كنت تقوم بتطوير تطبيق لشركة معينة في سياق محدد فإنه لا معنى كبير لاختباره ضد تطبيقات JPA متعددة والعكس بالعكس.

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