(concurrency in entityManager (hibernate

ارسال پست
sajadMathShah
پست: 13
تاریخ عضویت: پنج شنبه 2 مرداد 1399, 6:21 am

(concurrency in entityManager (hibernate

پست توسط sajadMathShah » چهار شنبه 19 شهریور 1399, 7:19 pm

با عرض سلام و خسته نباشید خدمت استاد گرامی :

سوال :
استاد عزیز ، طبق مطالبی که فرمودید ، اگر بخواهیم با متد persist تغییری روی یک داده از جدول دیتا بیس انجام دهیم (( با دیدگاه orm در hibernate )) ، باید آبجکت را از خود hibernate بگیریم ، سپس تغییرات را ایجاد کنیم و مجددا آبجکت را به متد persist دهیم ، تا آن را آپدیت کند ، طبق چیزی که من متوجه شدم ، فلسفه این کار این است که از concurrency جلوگیری شود و اینکه وقتی میخواهیم داده ای را تغییر دهیم ، آخرین تغییرات آن را از دیتابیس بگیریم ،
سوال بنده این است که : این امکان وجود دارد که ما همزمان چند entityManager به وجود آورده باشیم (( مثلا دوتا )) که هر دوی آنها در یک زمان آبجکت مثلا a را find میکنند و در اختیار کاربر قرار میدهند تا آن داده را تغییر دهد ، در این حین امکان این وجود دارد که یکی از این entityManager ها transaction خود را زود تر commit کند و این تغییر در دیتابیس رخ دهد ، اما entiytManger دوم که همین آبجکت را همزمان find کرده بود از این تغییر بیخبر است .
در این وضعیت ، بازهم از concurrency جلوگیری نشده ، میخواستم بدانم آیا سیستمی وجود دارد که جلوی این مشکل را میگیرد ؟؟ آیا با تغییر در entityManger اول ، entityManger دوم نیز متوجه تغییرات میشود ؟؟

با تشکر فراوان از زحمات شما

java2
مدیر کل سایت
پست: 178
تاریخ عضویت: پنج شنبه 13 دی 1397, 6:49 pm

Re: (concurrency in entityManager (hibernate

پست توسط java2 » چهار شنبه 19 شهریور 1399, 11:16 pm

با سلام، پاسخ مثبت است، استفاده از RC بهترین گزینه می باشد.

ارسال پست