+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 پاسخ 825 بازدید
0 امتیاز
0 پاسخ 623 بازدید
+2 امتیاز
2 پاسخ 1.4هزار بازدید
+1 امتیاز
1 پاسخ 886 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
+1 امتیاز
1 پاسخ 287 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
3 پاسخ 681 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
0 پاسخ 925 بازدید
+1 امتیاز
1 پاسخ 616 بازدید
0 امتیاز
1 پاسخ 351 بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
2 پاسخ 789 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
...