[java] ما الفرق بينResource UserTransaction و EntityManager.getTransaction ()



Answers

UserTransaction يشير إلى كيان المعاملة JTA . ستتمكن فقط من استخدام هذا عند وجود وحدة JTA متوفرة في خادم التطبيق: على سبيل المثال ، إذا كنت تقوم بنشر تطبيق مع هذا على Tomcat (والذي لا يعتمد بشكل افتراضي JTA) ، فسوف تفشل الشفرة التي تعتمد على ذلك. . هذا هو النوع الافتراضي من المعاملات المستخدمة في EJB و MDB.

EntityManager.getTransaction() كيان معاملة محلي . هذا أيضا يعرف أحيانا باسم المعاملات المحلية الموارد.

تختلف المعاملات المحلية للموارد كثيراً عن معاملات JTA: من بين أمور أخرى ، تكون المعاملات المحلية للموارد خاصة بمورد ، بينما تميل معاملات JTA إلى أن تكون محددة لمؤشر ترابط معين.

لمزيد من المعلومات حول الفرق بين معاملات المورد المحلي ومعاملات JTA ، راجع هذه الإجابة عن stackoverflow هنا: ما هو الفرق بين JTA والمعاملة المحلية؟

Question

يمكن لأي شخص أن يفسر ما هو الفرق بين:

@Resource
UserTransaction objUserTransaction;

و

EntityManager.getTransaction();

وأيضا ما هي المعاملة التي تديرها الحاوية؟ وكيف يمكنني أن أفعل ذلك في واجهة الجلسة الخاصة بي إذا أردت إدراج ثلاثة صفوف في الجدول في المعاملة.






Links