به طور کلی: برای کار کردن با 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