+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 پاسخ 929 بازدید
0 امتیاز
0 پاسخ 724 بازدید
+2 امتیاز
2 پاسخ 1.5هزار بازدید
+1 امتیاز
1 پاسخ 1.0هزار بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
+1 امتیاز
1 پاسخ 365 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
3 پاسخ 807 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
0 پاسخ 2.5هزار بازدید
+1 امتیاز
1 پاسخ 721 بازدید
0 امتیاز
1 پاسخ 448 بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
2 پاسخ 892 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
...