+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 پاسخ 837 بازدید
0 امتیاز
0 پاسخ 645 بازدید
+2 امتیاز
2 پاسخ 1.4هزار بازدید
+1 امتیاز
1 پاسخ 903 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
+1 امتیاز
1 پاسخ 293 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
3 پاسخ 695 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
0 پاسخ 933 بازدید
+1 امتیاز
1 پاسخ 626 بازدید
0 امتیاز
1 پاسخ 361 بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
2 پاسخ 800 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
...