+2 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)
تفاوت متد های persist و merge در JPA چیست؟

2 پاسخ

+1 امتیاز
قبل توسط (7.2هزار امتیاز)

به طور کلی: برای کار کردن با entity های attached از persist و برای کار کردن با entity های detached از merge استفاده می شود (همانند زمانی که یک درخواست ویرایش از سمت کلاینت را می خواهیم مستقیما به روز کنیم)

متد persist موجودیتی که به آن پاس داده شده را است به حالت managed می برد. اما با استفاده از متد merge موجودیت managed نمی شود، بلکه یک کپی از آن ایجاد شده به صورت managed در می آید و به عنوان بازگشتی بازگردانده می شود.

e = new MyEntity();
e2 = em.merge(e);// e2 is managed and e is not managed

e = new MyEntity();
em.persist(e);//e is managed

 

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

فراخوانی متد persist برای یک detached entity منجر به پرتاب IllegalArgumentException می شود اما فراخوانی متد merge برای یک detached entity باعث managed شدن آن می شود.

فراخوانی متد merge برای یک removed entity منجر به پرتاب IllegalArgumentException می شود اما فراخوانی متد persist برای یک removed entity باعث managed شدن آن می شود.

سوال شده 9 سال قبل در برنامه نویسی توسط (1.1هزار امتیاز) منظور از managed شدن یک Entity در JPA چیست؟
قبل توسط (1.1هزار امتیاز)
در سوال مرتبط بصورت کامل توضیح دادم: https://javabyab.com/18660

سوالات مشابه

0 امتیاز
0 پاسخ 834 بازدید
0 امتیاز
0 پاسخ 644 بازدید
+2 امتیاز
2 پاسخ 1.4هزار بازدید
+1 امتیاز
1 پاسخ 899 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
+1 امتیاز
1 پاسخ 291 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
3 پاسخ 692 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
0 پاسخ 931 بازدید
+1 امتیاز
1 پاسخ 624 بازدید
0 امتیاز
1 پاسخ 358 بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
2 پاسخ 796 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
...