+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 پاسخ 966 بازدید
0 امتیاز
0 پاسخ 758 بازدید
+2 امتیاز
2 پاسخ 1.6هزار بازدید
+1 امتیاز
1 پاسخ 1.1هزار بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
+1 امتیاز
1 پاسخ 394 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
3 پاسخ 875 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
0 پاسخ 2.8هزار بازدید
+1 امتیاز
1 پاسخ 750 بازدید
0 امتیاز
1 پاسخ 502 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
2 پاسخ 935 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
...