JavaRush /جاوا بلاگ /Random-UR /ہائبرنیٹ انٹرویو کے سوالات
Dr-JohnZoidberg
سطح
Киев

ہائبرنیٹ انٹرویو کے سوالات

گروپ میں شائع ہوا۔
یہ مضمون غیر ملکی مضامین کا ترجمہ اور بہتری ہے (مضمون کے آخر میں وسائل کی فہرست دی گئی ہے)۔ کچھ سوالات کے جوابات کو بڑھا دیا گیا ہے، فریق ثالث کے وسائل کے لنکس فراہم کیے گئے ہیں جن میں ایسے جوابات ہیں جو پڑھنے کے عمل کے دوران پیدا ہو سکتے ہیں۔ 1) ہائبرنیٹ کیا ہے؟ یہ روایتی رشتہ دار ڈیٹا بیس میں اداروں کی آبجیکٹ-ریلیشنل میپنگ کے لیے ایک فریم ورک ہے۔ فریم ورک کی اہم خصوصیات: 1) ڈیٹا بیس میں جدولوں کی خودکار پیداوار اور اپ ڈیٹ کرنا۔ 2) چونکہ ڈیٹا بیس کے بنیادی سوالات (محفوظ کرنا، اپ ڈیٹ کرنا، حذف کرنا اور تلاش کرنا) فریم ورک کے طریقوں کے طور پر پیش کیا جاتا ہے، اس لیے جو کوڈ ڈویلپر لکھتا ہے وہ نمایاں طور پر کم ہو جاتا ہے۔ 3) SQL جیسی زبان (HQL - ہائبرنیٹ استفسار کی زبان) کا استعمال فراہم کرتا ہے۔ HQL سوالات کو ڈیٹا آبجیکٹ کے ساتھ لکھا جا سکتا ہے (ڈیٹا بیس کے ساتھ کام کرنے کے لیے تیار کردہ POJO کلاسز)۔ 2) ہائبرنیٹ کیسے کریں۔پروگرامنگ کے ساتھ مدد کرتا ہے؟ ہائبرنیٹ متعدد خصوصیات کو نافذ کرتا ہے جو ڈویلپر کے کام کو بہت آسان بناتی ہے۔ — ان خصوصیات میں سے ایک یہ ہے کہ ہائبرنیٹ ڈویلپر کو زیادہ تر SQL سوالات لکھنے سے گریز کرنے کی اجازت دیتا ہے (وہ پہلے ہی لاگو ہو چکے ہیں، آپ کو صرف وہ طریقے استعمال کرنے کی ضرورت ہے جو فریم ورک فراہم کرتا ہے)۔ — ہڈ کے نیچے، ہائبرنیٹ کے پاس مفید ٹولز کا ایک گروپ ہے جو ایپلیکیشن کو نمایاں طور پر تیز کرتا ہے، جن میں سے سب سے زیادہ قابل ذکر دو لیول کیچنگ اور فائن ٹیوننگ لیز اور فیچ انخلا ہیں۔ - ڈیٹا بیس میں ہی ٹیبل بناتا ہے۔ 3) ہائبرنیٹ کے ساتھ کام کو ترتیب دینے کے طریقے۔ ہائبرنیٹ کے ساتھ کام کو ترتیب دینے کے چار طریقے ہیں: - تشریحات کا استعمال کرتے ہوئے؛ - hibernate.cfg.xml؛ - hibernate.properties؛ - persistence.xml. ترتیب دینے کا سب سے عام طریقہ: تشریحات اور persistence.xml فائل کے ذریعے، جیسا کہ hibernate.properties اور hibernate.cfg.xml فائلوں کے لیے، پھر hibernate.cfg.xml زیادہ اہم ہے (اگر ایپلی کیشن میں دونوں فائلیں ہیں، تو ترتیبات hibernate.cfg فائل کو قبول کیا جاتا ہے۔ xml)۔ تشریحات کے ساتھ کنفیگریشن، اگرچہ آسان ہے، ہمیشہ ممکن نہیں ہے؛ مثال کے طور پر، اگر آپ مختلف ڈیٹا بیس کے لیے یا مختلف حالات کے لیے مختلف ہستی کنفیگریشنز کرنا چاہتے ہیں، تو آپ کو xml کنفیگریشن فائلز استعمال کرنی چاہیے۔ 4) ہائبرنیٹ کون سے کلیدی انٹرفیس استعمال کرتا ہے؟ پانچ کلیدی انٹرفیس ہیں جو ہائبرنیٹ سے متعلق ہر ایپلیکیشن میں استعمال ہوتے ہیں: - سیشن انٹرفیس؛ - سیشن فیکٹری انٹرفیس؛ - کنفیگریشن انٹرفیس؛ - ٹرانزیکشن انٹرفیس؛ - استفسار اور معیار کے انٹرفیس۔ 5) ہائبرنیٹ میں سیشن انٹرفیس کا کیا کردار ہے؟ سیشن مرکزی انٹرفیس ہے جو ڈیٹا بیس کے ساتھ بات چیت کے لیے ذمہ دار ہے۔ یہ مستقل اشیاء کو حاصل کرنے کے لئے درخواست کی اشیاء بنانے میں بھی مدد کرتا ہے۔ (مسلسل آبجیکٹ - ایک ایسی چیز جو پہلے سے ڈیٹا بیس میں ہے؛ درخواست آبجیکٹ - ایک ایسی چیز جو حاصل کی جاتی ہے جب ہمیں ڈیٹا بیس میں کسی سوال کا نتیجہ موصول ہوتا ہے، اسی کے ساتھ ایپلی کیشن کام کرتی ہے)۔ سیشن آبجیکٹ SessionFactory سے حاصل کیا جا سکتا ہے: Session session = sessionFactory.openSession(); سیشن انٹرفیس کا کردار: ڈیٹا بیس سے jdbc کنکشن کے لیے ایک ریپر ہے۔ (https://ru.wikipedia.org/wiki/Java_Database_Connectiv..) - لین دین کی ایک فیکٹری ہے (سرکاری دستاویزات کے لین دین کے مطابق - ایپلیکیشن کو کام کی اکائیوں کی وضاحت کرنے کی اجازت دیتا ہے، جس کا خلاصہ یہ ہے کہ لین دین کی وضاحت ڈیٹا بیس سے وابستہ آپریشنز کی حدود)۔ - لازمی فرسٹ لیول کیشے کا نگہبان ہے۔ 6) ہائبرنیٹ میں سیشن فیکٹری انٹرفیس کا کیا کردار ہے؟ یہ SessionFactory آبجیکٹ سے ہے جس سے ہم سیشن کی قسم کی اشیاء حاصل کرتے ہیں۔ پوری ایپلیکیشن کے لیے صرف ایک SessionFactory ہے اور جب ایپلی کیشن شروع ہوتی ہے تو اسے شروع کیا جاتا ہے۔ SessionFactory میٹا ڈیٹا اور ایس کیو ایل کے سوالات کو کیش کرتا ہے جو آپریشن کے دوران ایپلی کیشن کے ذریعہ اکثر استعمال ہوتے ہیں۔ یہ ان معلومات کو بھی محفوظ کرتا ہے جو ایک لین دین میں موصول ہوئی تھی اور دوسرے لین دین میں استعمال کی جا سکتی ہے۔ SessionFactory آبجیکٹ درج ذیل کال کا استعمال کرتے ہوئے حاصل کیا جا سکتا ہے: SessionFactory sessionFactory = configuration.buildSessionFactory(); 7) ہائبرنیٹ میں کس قسم کے مجموعے فراہم کیے جاتے ہیں؟ بیگ، سیٹ، فہرست، نقشہ، صف۔ 8) بیگ کی قسم کا مجموعہ کیا ہے اور اسے کیوں استعمال کیا جاتا ہے؟ اس کے نفاذ میں، بیگ جمع کرنے کی قسم سیٹ سے بہت ملتی جلتی ہے، فرق یہ ہے کہ بیگ ڈپلیکیٹ اقدار کو ذخیرہ کر سکتا ہے۔ بیگ عناصر کی غیر انڈیکس شدہ فہرست کو اسٹور کرتا ہے۔ ڈیٹا بیس میں زیادہ تر جدولوں میں اشاریہ جات ہوتے ہیں جو ایک دوسرے کے نسبت ڈیٹا عنصر کی پوزیشن کو ظاہر کرتے ہیں؛ ان اشاریہ جات کو جدول میں ایک علیحدہ کالم کے طور پر دکھایا جاتا ہے۔ آبجیکٹ-ریلیشنل میپنگ کے ساتھ، انڈیکس کالم کی قدروں کو ایک صف میں انڈیکس، فہرست میں ایک انڈیکس، یا نقشہ میں ایک کلید کے ساتھ نقشہ بنایا جاتا ہے۔ اگر آپ کو اشیاء کا مجموعہ حاصل کرنے کی ضرورت ہے جس میں انڈیکس ڈیٹا نہیں ہے، تو آپ بیگ یا سیٹ کی قسم کے مجموعے استعمال کر سکتے ہیں (مجموعہ غیر ترتیب شدہ شکل میں ڈیٹا پر مشتمل ہے، لیکن درخواست کے مطابق ترتیب دیا جا سکتا ہے)۔ 9) لوڈ کے آپریشن میں کیا فرق ہے (؛ طریقوں؟ اور حاصل کریں()؟ load() طریقہ؛ عام طور پر استعمال کیا جاتا ہے جب آپ کو یقین نہیں ہے کہ درخواست کردہ آبجیکٹ پہلے سے ہی ڈیٹا بیس میں ہے۔ اگر آبجیکٹ نہیں مل پاتا ہے، تو طریقہ استثنیٰ دیتا ہے۔ اگر آبجیکٹ مل جاتا ہے، تو طریقہ ایک پراکسی آبجیکٹ لوٹاتا ہے، جو ڈیٹا بیس میں موجود آبجیکٹ کا لنک ہے (ڈیٹا بیس کی درخواست ابھی تک نہیں کی گئی ہے، ایک قسم سست بازیافت کی)، ڈیٹا بیس سے براہ راست درخواست جب ہم کسی پراکسی آبجیکٹ کے ذریعے مطلوبہ شے تک براہ راست رسائی حاصل کرتے ہیں۔ get() طریقہ؛ پھر استعمال کیا جاتا ہے، آپ کو 100 فیصد یقین نہیں ہے کہ آیا درخواست کردہ آبجیکٹ ڈیٹا بیس میں ہے۔ کسی غیر موجود شے تک رسائی کی صورت میں get(); طریقہ null واپس آ جائے گا. اگر آبجیکٹ مل جاتا ہے تو get() طریقہ؛ آبجیکٹ کو خود ہی واپس کر دے گا اور ڈیٹا بیس کا استفسار فوری طور پر کیا جائے گا۔ 10) ہائبرنیٹ میں سست بازیافت کیا ہے؟ ہائبرنیٹ میں سست چیک آؤٹ کی قسم لیف (چائلڈ) اداروں سے وابستہ ہے اور اگر کسی پیرنٹ ہستی کو چیک کرنے کی درخواست کی گئی ہے تو مشترکہ چیک آؤٹ پالیسی کی وضاحت کرتی ہے۔ ایک سادہ مثال: ایک ہستی ہاؤس ہے۔ یہ اپنے نمبر، گلی، اپارٹمنٹس کی تعداد اور اپارٹمنٹس میں رہنے والے خاندانوں کے بارے میں معلومات ذخیرہ کرتا ہے؛ یہ خاندان گھر کے ہستی کی نسبت ایک چائلڈ ہستی بناتے ہیں۔ جب ہم کسی گھر کے بارے میں معلومات کی درخواست کرتے ہیں، تو اس میں رہنے والے خاندانوں کے بارے میں معلومات جاننا ہمارے لیے مکمل طور پر غیر ضروری ہو سکتا ہے، یہاں سستی بازیافت ہماری مدد کے لیے آتی ہے، جس کی وجہ سے ہمیں گھر کے ادارے کو ترتیب دینے کی اجازت ملتی ہے تاکہ خاندانوں کے بارے میں معلومات فراہم کی جائیں۔ درخواست پر، یہ اہم بادلوں کی درخواست ہے اور درخواست کو تیز کرتی ہے۔ ©dev-bay ڈیٹا بیس میں زیادہ تر جدولوں میں اشاریہ جات ہوتے ہیں جو ایک دوسرے کے نسبت ڈیٹا عنصر کی پوزیشن کو ظاہر کرتے ہیں؛ ان اشاریہ جات کو جدول میں ایک علیحدہ کالم کے طور پر دکھایا جاتا ہے۔ آبجیکٹ-ریلیشنل میپنگ کے ساتھ، انڈیکس کالم کی قدروں کو ایک صف میں انڈیکس، فہرست میں ایک انڈیکس، یا نقشہ میں ایک کلید کے ساتھ نقشہ بنایا جاتا ہے۔ اگر آپ کو اشیاء کا مجموعہ حاصل کرنے کی ضرورت ہے جس میں انڈیکس ڈیٹا نہیں ہے، تو آپ بیگ یا سیٹ کی قسم کے مجموعے استعمال کر سکتے ہیں (مجموعہ غیر ترتیب شدہ شکل میں ڈیٹا پر مشتمل ہے، لیکن درخواست کے مطابق ترتیب دیا جا سکتا ہے)۔ 9) لوڈ کے آپریشن میں کیا فرق ہے (؛ طریقوں؟ اور حاصل کریں()؟ load() طریقہ؛ عام طور پر استعمال کیا جاتا ہے جب آپ کو یقین نہیں ہے کہ درخواست کردہ آبجیکٹ پہلے سے ہی ڈیٹا بیس میں ہے۔ اگر آبجیکٹ نہیں مل پاتا ہے، تو طریقہ استثنیٰ دیتا ہے۔ اگر آبجیکٹ مل جاتا ہے، تو طریقہ ایک پراکسی آبجیکٹ لوٹاتا ہے، جو ڈیٹا بیس میں موجود آبجیکٹ کا لنک ہے (ڈیٹا بیس کی درخواست ابھی تک نہیں کی گئی ہے، ایک قسم سست بازیافت کی)، ڈیٹا بیس سے براہ راست درخواست جب ہم کسی پراکسی آبجیکٹ کے ذریعے مطلوبہ شے تک براہ راست رسائی حاصل کرتے ہیں۔ get() طریقہ؛ پھر استعمال کیا جاتا ہے، آپ کو 100 فیصد یقین نہیں ہے کہ آیا درخواست کردہ آبجیکٹ ڈیٹا بیس میں ہے۔ کسی غیر موجود شے تک رسائی کی صورت میں get(); طریقہ null واپس آ جائے گا. اگر آبجیکٹ مل جاتا ہے تو get() طریقہ؛ آبجیکٹ کو خود ہی واپس کر دے گا اور ڈیٹا بیس کا استفسار فوری طور پر کیا جائے گا۔ 10) ہائبرنیٹ میں سست بازیافت کیا ہے؟ ہائبرنیٹ میں سست چیک آؤٹ کی قسم لیف (چائلڈ) اداروں سے وابستہ ہے اور اگر کسی پیرنٹ ہستی کو چیک کرنے کی درخواست کی گئی ہے تو مشترکہ چیک آؤٹ پالیسی کی وضاحت کرتی ہے۔ ایک سادہ مثال: ایک ہستی ہاؤس ہے۔ یہ اپنے نمبر، گلی، اپارٹمنٹس کی تعداد اور اپارٹمنٹس میں رہنے والے خاندانوں کے بارے میں معلومات ذخیرہ کرتا ہے؛ یہ خاندان گھر کے ہستی کی نسبت ایک چائلڈ ہستی بناتے ہیں۔ جب ہم کسی گھر کے بارے میں معلومات کی درخواست کرتے ہیں، تو اس میں رہنے والے خاندانوں کے بارے میں معلومات جاننا ہمارے لیے مکمل طور پر غیر ضروری ہو سکتا ہے، یہاں سستی بازیافت ہماری مدد کے لیے آتی ہے، جس کی وجہ سے ہمیں گھر کے ادارے کو ترتیب دینے کی اجازت ملتی ہے تاکہ خاندانوں کے بارے میں معلومات فراہم کی جائیں۔ درخواست پر، یہ اہم بادلوں کی درخواست ہے اور درخواست کو تیز کرتی ہے۔ ©dev-bay ڈیٹا بیس میں زیادہ تر جدولوں میں اشاریہ جات ہوتے ہیں جو ایک دوسرے کے نسبت ڈیٹا عنصر کی پوزیشن کو ظاہر کرتے ہیں؛ ان اشاریہ جات کو جدول میں ایک علیحدہ کالم کے طور پر دکھایا جاتا ہے۔ آبجیکٹ-ریلیشنل میپنگ کے ساتھ، انڈیکس کالم کی قدروں کو ایک صف میں انڈیکس، فہرست میں ایک انڈیکس، یا نقشہ میں ایک کلید کے ساتھ نقشہ بنایا جاتا ہے۔ اگر آپ کو اشیاء کا مجموعہ حاصل کرنے کی ضرورت ہے جس میں انڈیکس ڈیٹا نہیں ہے، تو آپ بیگ یا سیٹ کی قسم کے مجموعے استعمال کر سکتے ہیں (مجموعہ غیر ترتیب شدہ شکل میں ڈیٹا پر مشتمل ہے، لیکن درخواست کے مطابق ترتیب دیا جا سکتا ہے)۔ 9) لوڈ کے آپریشن میں کیا فرق ہے (؛ طریقوں؟ اور حاصل کریں()؟ load() طریقہ؛ عام طور پر استعمال کیا جاتا ہے جب آپ کو یقین نہیں ہے کہ درخواست کردہ آبجیکٹ پہلے سے ہی ڈیٹا بیس میں ہے۔ اگر آبجیکٹ نہیں مل پاتا ہے، تو طریقہ استثنیٰ دیتا ہے۔ اگر آبجیکٹ مل جاتا ہے، تو طریقہ ایک پراکسی آبجیکٹ لوٹاتا ہے، جو ڈیٹا بیس میں موجود آبجیکٹ کا لنک ہے (ڈیٹا بیس کی درخواست ابھی تک نہیں کی گئی ہے، ایک قسم سست بازیافت کی)، ڈیٹا بیس سے براہ راست درخواست جب ہم کسی پراکسی آبجیکٹ کے ذریعے مطلوبہ شے تک براہ راست رسائی حاصل کرتے ہیں۔ get() طریقہ؛ پھر استعمال کیا جاتا ہے، آپ کو 100 فیصد یقین نہیں ہے کہ آیا درخواست کردہ آبجیکٹ ڈیٹا بیس میں ہے۔ کسی غیر موجود شے تک رسائی کی صورت میں get(); طریقہ null واپس آ جائے گا. اگر آبجیکٹ مل جاتا ہے تو get() طریقہ؛ آبجیکٹ کو خود ہی واپس کر دے گا اور ڈیٹا بیس کا استفسار فوری طور پر کیا جائے گا۔ 10) ہائبرنیٹ میں سست بازیافت کیا ہے؟ ہائبرنیٹ میں سست چیک آؤٹ کی قسم لیف (چائلڈ) اداروں سے وابستہ ہے اور اگر کسی پیرنٹ ہستی کو چیک کرنے کی درخواست کی گئی ہے تو مشترکہ چیک آؤٹ پالیسی کی وضاحت کرتی ہے۔ ایک سادہ مثال: ایک ہستی ہاؤس ہے۔ یہ اپنے نمبر، گلی، اپارٹمنٹس کی تعداد اور اپارٹمنٹس میں رہنے والے خاندانوں کے بارے میں معلومات ذخیرہ کرتا ہے؛ یہ خاندان گھر کے ہستی کی نسبت ایک چائلڈ ہستی بناتے ہیں۔ جب ہم کسی گھر کے بارے میں معلومات کی درخواست کرتے ہیں، تو اس میں رہنے والے خاندانوں کے بارے میں معلومات جاننا ہمارے لیے مکمل طور پر غیر ضروری ہو سکتا ہے، یہاں سستی بازیافت ہماری مدد کے لیے آتی ہے، جس کی وجہ سے ہمیں گھر کے ادارے کو ترتیب دینے کی اجازت ملتی ہے تاکہ خاندانوں کے بارے میں معلومات فراہم کی جائیں۔ درخواست پر، یہ اہم بادلوں کی درخواست ہے اور درخواست کو تیز کرتی ہے۔ ©dev-bay ڈیٹا بیس سے براہ راست استفسار جب ہم کسی پراکسی آبجیکٹ کے ذریعے مطلوبہ شے تک براہ راست رسائی حاصل کرتے ہیں۔ get() طریقہ؛ پھر استعمال کیا جاتا ہے، آپ کو 100 فیصد یقین نہیں ہے کہ آیا درخواست کردہ آبجیکٹ ڈیٹا بیس میں ہے۔ کسی غیر موجود شے تک رسائی کی صورت میں get(); طریقہ null واپس آ جائے گا. اگر آبجیکٹ مل جاتا ہے تو get() طریقہ؛ آبجیکٹ کو خود ہی واپس کر دے گا اور ڈیٹا بیس کا استفسار فوری طور پر کیا جائے گا۔ 10) ہائبرنیٹ میں سست بازیافت کیا ہے؟ ہائبرنیٹ میں سست چیک آؤٹ کی قسم لیف (چائلڈ) اداروں سے وابستہ ہے اور اگر کسی پیرنٹ ہستی کو چیک کرنے کی درخواست کی گئی ہے تو مشترکہ چیک آؤٹ پالیسی کی وضاحت کرتی ہے۔ ایک سادہ مثال: ایک ہستی ہاؤس ہے۔ یہ اپنے نمبر، گلی، اپارٹمنٹس کی تعداد اور اپارٹمنٹس میں رہنے والے خاندانوں کے بارے میں معلومات ذخیرہ کرتا ہے؛ یہ خاندان گھر کے ہستی کی نسبت ایک چائلڈ ہستی بناتے ہیں۔ جب ہم کسی گھر کے بارے میں معلومات کی درخواست کرتے ہیں، تو اس میں رہنے والے خاندانوں کے بارے میں معلومات جاننا ہمارے لیے مکمل طور پر غیر ضروری ہو سکتا ہے، یہاں سستی بازیافت ہماری مدد کے لیے آتی ہے، جس کی وجہ سے ہمیں گھر کے ادارے کو ترتیب دینے کی اجازت ملتی ہے تاکہ خاندانوں کے بارے میں معلومات فراہم کی جائیں۔ درخواست پر، یہ اہم بادلوں کی درخواست ہے اور درخواست کو تیز کرتی ہے۔ ©dev-bay ڈیٹا بیس سے براہ راست استفسار جب ہم کسی پراکسی آبجیکٹ کے ذریعے مطلوبہ شے تک براہ راست رسائی حاصل کرتے ہیں۔ get() طریقہ؛ پھر استعمال کیا جاتا ہے، آپ کو 100 فیصد یقین نہیں ہے کہ آیا درخواست کردہ آبجیکٹ ڈیٹا بیس میں ہے۔ کسی غیر موجود شے تک رسائی کی صورت میں get(); طریقہ null واپس آ جائے گا. اگر آبجیکٹ مل جاتا ہے تو get() طریقہ؛ آبجیکٹ کو خود ہی واپس کر دے گا اور ڈیٹا بیس کا استفسار فوری طور پر کیا جائے گا۔ 10) ہائبرنیٹ میں سست بازیافت کیا ہے؟ ہائبرنیٹ میں سست چیک آؤٹ کی قسم لیف (چائلڈ) اداروں سے وابستہ ہے اور اگر کسی پیرنٹ ہستی کو چیک کرنے کی درخواست کی گئی ہے تو مشترکہ چیک آؤٹ پالیسی کی وضاحت کرتی ہے۔ ایک سادہ مثال: ایک ہستی ہاؤس ہے۔ یہ اپنے نمبر، گلی، اپارٹمنٹس کی تعداد اور اپارٹمنٹس میں رہنے والے خاندانوں کے بارے میں معلومات ذخیرہ کرتا ہے؛ یہ خاندان گھر کے ہستی کی نسبت ایک چائلڈ ہستی بناتے ہیں۔ جب ہم کسی گھر کے بارے میں معلومات کی درخواست کرتے ہیں، تو اس میں رہنے والے خاندانوں کے بارے میں معلومات جاننا ہمارے لیے مکمل طور پر غیر ضروری ہو سکتا ہے، یہاں سستی بازیافت ہماری مدد کے لیے آتی ہے، جس کی وجہ سے ہمیں گھر کے ادارے کو ترتیب دینے کی اجازت ملتی ہے تاکہ خاندانوں کے بارے میں معلومات فراہم کی جائیں۔ درخواست پر، یہ اہم بادلوں کی درخواست ہے اور درخواست کو تیز کرتی ہے۔ ©dev-bay
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION