+1 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)
ویرایش شده قبل توسط

قرار دادن مقدار transaction-type در JPA برابر RESOURCE_LOCAL چه کاربردی دارد؟

transaction-type="RESOURCE_LOCAL"

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

اگر مقدار transaction-type در فایل persistence.xml برابر با RESOURCE_LOCAL باشد:

  • از RESOURCE_LOCAL باید برای برنامه های standalone (برنامه هایی که درون Java EE Container اجرا نمی شوند) استفاده کرد (مانند برنامه های دسکتاپ).
  • برای بدست آوردن EntityManager باید از EntityManagerFactory استفاده کرد.
  • مدیریت Transaction ها باید با استفاده از کد و EntityTransaction API انجام شود (توسط container مدیریت نمی شود).
  • نمی توان از @PersistenceContext برای inject کردن EntityManagerFactory استفاده کرد و باید از @PersistenceUnit استفاده کرد.
  • هر بار فراخوانی متد createEntityManager از کلاس EntityManagerFactory، منجر به ایجاد یک شئ EntityManager مجزا می شود (و به تبع آن PersistenceContext جداگانه)، بنابراین باید حتما (توصیه می شود) دقت کنید که همیشه یک شئ EntityManager داشته باشید چون در صورت وجود دو شئ از EntityManager تضمینی برای هماهنگ بودن Transaction ها بین این دو شئ EntityManager وجود ندارد.

سوالات مشابه

+1 امتیاز
1 پاسخ 1.1هزار بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
+1 امتیاز
1 پاسخ 392 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
3 پاسخ 866 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
0 پاسخ 2.8هزار بازدید
0 امتیاز
0 پاسخ 961 بازدید
+1 امتیاز
1 پاسخ 744 بازدید
0 امتیاز
1 پاسخ 502 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
2 پاسخ 932 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
0 امتیاز
1 پاسخ 378 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 447 بازدید
...