+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.2هزار بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
+1 امتیاز
1 پاسخ 425 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
3 پاسخ 938 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
0 پاسخ 2.8هزار بازدید
0 امتیاز
0 پاسخ 1.0هزار بازدید
+1 امتیاز
1 پاسخ 793 بازدید
0 امتیاز
1 پاسخ 540 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
2 پاسخ 969 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
0 امتیاز
1 پاسخ 418 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 481 بازدید
...