الفرق الرئيسي هو ما إذا كان تأخر التحميل.
لا تصل طريقة التحميل إلى قاعدة البيانات فورًا ، وعندما لا تكون المحاولات التي تمت محاولتها التحميل موجودة ، تقوم طريقة التحميل بإرجاع كائن وكيل غير مهيئ.
احصل على الطريقة
دائما الوصول إلى قاعدة البيانات على الفور. عندما لا يكون السجل محاولة التحميل غير موجود ، إرجاع فارغة مباشرة
هناك طريقتان موجودتان في السبات المتشابهان للغاية. بعد مراجعته ، وجدت
هناك طريقتان متشابهتان للغاية في السبات ، GET () و LOAD (). يمكن كلاهما قراءة البيانات من قاعدة البيانات من خلال فئة الكيان المحددة والمعرف وإرجاع المثيل المقابل. ومع ذلك ، فإن السبات لن يفعل بطريقتين بالضبط. الفرق بينهما هو:
الحصول على الاستعلام عن قاعدة البيانات مباشرة. إذا كان لا يمكن العثور عليه ، فسيعود فارغ. سيتم تحميل التحميل أولاً من الذاكرة. إذا لم يتم تحميله أو الاستعلام عنه من قبل ، فعليك الاستعلام عن قاعدة البيانات.
الفرق الأساسي بين طريقة GET وطريقة التحميل في السبات هو أنه إذا كنت تستخدم طريقة التحميل ، فإن السبات يعتقد أن الكائن (سجل قاعدة البيانات) المقابل للمعرف يجب أن يكون موجودًا في قاعدة البيانات ، بحيث يمكن استخدامه بثقة ، ويمكنه استخدام الوكيل لتأخير تحميل الكائن. يتم الاستعلام عن قاعدة البيانات فقط عند استخدام بيانات السمة الأخرى في الكائن ، ولكن إذا لم يكن السجل موجودًا في قاعدة البيانات ، فلا توجد طريقة ، ولا يمكنك سوى رمي الاستثناءات. تعني طريقة التحميل استثناءات أنه عند استخدام بيانات الكائن ، يتم طرح الاستثناءات عندما لا تكون البيانات موجودة في قاعدة البيانات ، بدلاً من إنشاء هذا الكائن. نظرًا لأن ذاكرة التخزين المؤقت في الجلسة هي مورد رخيص للغاية لإسبات ، عند التحميل ، سنقوم أولاً بالتحقق من ذاكرة التخزين المؤقت للجلسة لمعرفة ما إذا كان الكائن المقابل للمعرف موجودًا. إذا لم يكن موجودًا ، فسيتم إنشاء وكيل. لذلك إذا كنت تعلم أن المعرف يجب أن يكون له سجل مقابل في قاعدة البيانات ، فيمكنك استخدام طريقة التحميل لتحقيق التحميل كسول. لطريقة الحصول على GET ، سوف تؤكد السبات ما إذا كانت البيانات المقابلة للمعرف موجودة. أولاً ، ابحث عن ذاكرة التخزين المؤقت للجلسة ، ثم ابحث عن ذاكرة التخزين المؤقت الثانوية. إذا لم يتم ذلك بعد ، فابحث عن قاعدة البيانات ، وإذا لم يتم ذلك في قاعدة البيانات ، فالتراجع.
2. إن طريقة الحصول على ذاكرة التخزين المؤقت للجلسة أولاً ، إن لم يكن كذلك ، تقوم بتصنيع ذاكرة التخزين المؤقت الثانوية ، وأخيراً تتجول في قاعدة البيانات ؛ على العكس من ذلك ، عند إنشاء طريقة التحميل ، يتم الاستعلام عن ذاكرة التخزين المؤقت للجلسة أولاً ، وإذا لم يتم إنشاء أي عامل ، يتم الاستعلام عن ذاكرة التخزين المؤقت الثانوية وقاعدة البيانات فقط عند استخدام البيانات بالفعل.
باختصار ، من أجل الفرق الأساسي بين GET and Load ، في كلمة واحدة ، يعتقد السبات أن البيانات يجب أن توجد في قاعدة البيانات لطريقة التحميل ، ويمكنها استخدام الوكيل لتأخير التحميل بثقة. إذا تم العثور على مشكلة أثناء الاستخدام ، فيمكنها فقط رمي الاستثناءات ؛ بالنسبة لطريقة الحصول على ، يجب على السبات الحصول على البيانات الحقيقية ، وإلا فإنه سيعود فارغة.
1. إذا لم يتم العثور على سجل يفي بالمعايير ، فسيتم إرجاع طريقة GET (). وسيقوم Load () بالإبلاغ عن ObjectNotFoundCception.
2. يمكن أن تقوم طريقة Load () بإرجاع مثيل فئة وكيل الكيان ، بينما ستعيد GET () دائمًا فئة الكيان فقط.
3. يمكن أن تستفيد طريقة LOAD () من الاستفادة الكاملة من البيانات الموجودة في ذاكرة التخزين المؤقت الثانوية وذاكرة التخزين المؤقت الداخلية ، بينما تبحث طريقة GET () فقط في ذاكرة التخزين المؤقت الداخلية. إذا لم يتم العثور على بيانات مقابلة ، فسيتم تخطي ذاكرة التخزين المؤقت الثانوية وسيتم استدعاء SQL مباشرة لإكمال البحث.