یادداشتهایی بر رهیافت ORM با تاکید بر Hibernate – بخش ششم

یادداشتهایی بر رهیافت ORM با تاکید بر Hibernate – بخش ششم

در این مقاله به بررسی روشها و استراتژی های تولید id در Hibernate خواهیم پرداخت .همانطور که در مقاله قبلی هم گفتیم یکی از ویژگی‌هایی که در مورد انتخاب یک استراتژی تولید id جذاب و مهم است تولید مقدار id برای یک entity جدید قبل از اجرای عمل واقعی insert در db است .در ادامه ۱۲ استراتژی تولید id در Hibernate را خلاصه وار بررسی می کنیم بیشتر آنها در محیطهای عملیاتی فعلی چندان کاربردی ندارند .

بیشتر بخوانید
یادداشتهایی بر رهیافت ORM با تاکید بر Hibernate – بخش پنجم

یادداشتهایی بر رهیافت ORM با تاکید بر Hibernate – بخش پنجم

یک – بخاطر مسایل بهینه سازی ، سیاست Hibernate اغلب این است که عمل درج (insert) موجودیت ها تا جایی که می تواند به تعویق بیندازد و عمل درج را به صف برده و در نهایت همه درخواستهای insert را به صورت یکجا و دسته ای ( batch) انجام دهد .دو – بخاطر در پیش گرفتن سیاست ذکر شده در بند یک ترجیح ما (برنامه نویسان ) این است که مقدار id حتی قبل از عمل insert واقعی در DB تولید و در دست ما باشد .سه – در اغلب روشها ما با مفهومی بنام Sequence سروکار داریم که یا در سمت DB توسط DBMS هندل می شود یا توسط Hibernate . در واقع Sequence یک ویژگی است در دنیای DB . که وظیفه اش تولید مقادیر منحصربفرد برای ستون های Primary key در جدول های یک DB است . نکته مهمی که در مورد Sequence باید بهش توجه کنیم این است که فرایند تولید مقادیر id در اغلب DBMS‌ها خارج از تراکنش رخ می دهد به عبارت دیگر transaction-less است یعنی یک مقدار …

بیشتر بخوانید
یادداشتهایی بر رهیافت ORM با تاکید بر Hibernate – بخش سوم

یادداشتهایی بر رهیافت ORM با تاکید بر Hibernate – بخش سوم

وقتی برای اولین بار شروع به درک و مدلسازی یک سیستم می‌کنید اولین مستنداتی که در حین اینکار تولید می‌شود پایه‌های اولیه مدل سازی بیزنسی (business model ) را تشکیل می‌دهد . خیلی ساده، می‌خواهیم بدانیم این سیستم بایستی چه نیازهایی از مشتری را پاسخ دهد و چگونه / چه موقع این نیازها را پاسخ دهد . درک سیستم همیشه کار ساده و سرراستی نیست فرض کنید شما قصد مدلسازی سیستم شبیه سازی کنترل ترافیک خطوط هوایی آمریکا را برعهده دارید یا سیستم پرداخت یک بانک را . شما یک برنامه نویس یک طراح نرم‌افزار و در یک کلام شما یک متخصص حوزه IT هستید نه مهندس هواپیما نه مهندس مکانیک نه حسابدار بانک و نه ….

بیشتر بخوانید
یادداشتهایی بر رهیافت ORM با تاکید بر Hibernate – بخش دوم

یادداشتهایی بر رهیافت ORM با تاکید بر Hibernate – بخش دوم

اگر در اینترنت لابلای کدهای نمونه بچرخید انواع روشهای پیکربندی پروژه Hibernateی را خواهید دید . و اگر کل داستان یا دست کم آغاز داستان و دسته بندی های مختلفی که روی پروژه های Hibernate ی و کلاً JPAی اعمال شده را ندانید خیلی زود گیج خواهید شد . عجیب هم نیست اگر حین مطالعه این کدها سؤالاتی به ذهنتان می‌رسد و دنبال جواب آن‌ها در اینترنت جستجو می‌کنید و می‌بینید دقیقاً و عیناً همان سؤال شما در مثلاً stackoverflow یا بقیه سایتها پرسیده شده ، نشان میدهد این سردرگمی و نامفهومی برامده از کدها برای اغلب برنامه نویسان تازه کار و حتی کهنه کار قبلاً پیش اومده .

بیشتر بخوانید
یادداشتهایی بر رهیافت ORM با تاکید بر Hibernate – بخش اول

یادداشتهایی بر رهیافت ORM با تاکید بر Hibernate – بخش اول

Java persistence with Hibernate یکی از بهترین کتاب‌هایی که تو حوزه ORM نوشته شده است . قبلاً براساس نیاز و وقتم مقالات پراکنده‌ای در مورد ORM به‌خصوص Hibernate خونده بودم ولی هیچ‌ موقع فرصت / قسمت / اراده نشد تا به صورت مفهومی و عمیق در مورد این حوزه مطالعه‌ای داشته باشم. چند روزی است مطالعه کتاب مذکور را شروع کردم با مرور سرفصل هاش انتظار داشتم خیلی زود چند فصل اول را تمام کرده و به مباحث مورد نظرم برسم ولی از همان فصل اول کتاب ، انقدر مفاهیم مفهومی و عمیق و چرایی ضرورت رفتن سراغ این رهیافت ( ORM ) برایم جذاب آمد که تصمیم گرفتم قلم برداشته و نکات مهم و جالبش را یادداشت کنم . وسطهای نوشتن روی کاغذ به ذهنم رسید چرا این مطالب را با دوستان همکار و علاقه مندم به اشتراک نگذارم

بیشتر بخوانید
کاربرد Enumها جهت مدل کردن یک Sequence Diagram پیچیده

کاربرد Enumها جهت مدل کردن یک Sequence Diagram پیچیده

اکثر ما برنامه نویس ها وقتی واژه Enum را می‌شنویم یاد مثال معروف فصل های سال یا رنگهای رنگین کمان می‌افتیم یا اگر کمی با تجربه تر باشیم یا در چند مصاحبه تخصصی برای شرکتهای مختلف شرکت کرده باشیم میدانیم که کاربرد دیگر این نوع داده در مبحث Singleton Design Pattern و پیاده‌سازی این دیزاین پترن با Enum هاست ( اگه علاقه‌مند بودید به این مقاله نگاهی بندازید ). اما من در این پست کوتاه وبلاگی قصد دارم در مورد کاربرد Enum ها در یک داخل یه پروژه واقعی صحبت کنم امیدوارم مفید باشه و اگه جایی فکر می‌کنید راه رو اشتباه رفتم یا میتوانستم بهتر قدم بردارم و مسأله رو بهینه‌تر حل کنم خوشحال میشم راهنماییم کنید.

بیشتر بخوانید