اليوم فعلت شيئًا خدع نفسي وتهدر الكثير من الوقت. . .
في إعدادات MyBatis ، رأيت مجموعة من الإعدادات مثل هذا. من فضول المبرمج ، بحثت ووجدت ما يفعله هذا الإعداد.
<Setting Name = "CallSetterSonnulls" value = "true"/>
بعد الإجابات من العديد من الماجستير الرائعين على الإنترنت ، لم يكن لدي سوى القليل من الفهم.
بشكل عام ، إذا كنت تستخدم MAP لقبول نتيجة الاستعلام ، فسيتم تجاهل الحقول ذات نتيجة الاستعلام الخالية تلقائيًا ، مما سيؤدي إلى الإبلاغ عن استثناء مؤشر فارغ عند أخذ المعلمة.
إذا تم تعيين هذه الخاصية ، فلن يتجاهل MyBatis هذه الحقول. لا يزال بإمكانك الحصول على هذه المفاتيح ، لكن القيمة لاغية ، وهي مريحة أيضًا.
لذلك هنا يأتي المآزق. في هذا الإعداد ، سيكون هناك حالتان إضافيتان.
1. إذا لم يكن لجميع الحقول في الاستعلام بأكمله قيمة ، أي عند العثور على سجلات 0 ، ما هي نتيجة الخريطة المقبولة؟
الجواب هو أننا سوف نتلقى خريطة مع جميع قيم المفاتيح الفارغة بدلاً من الخريطة مع NULL.
2. إذا كنت قد استعنت فقط حقلًا واحدًا واستلمته باستخدام الخريطة ، فما هي نتيجة NULL في هذا الوقت؟
الجواب هو أننا سوف نتلقى خريطة مع NULL ، والتي هي بالضبط عكس ما ورد أعلاه.
لخص
ما سبق هو تحليل تكوين MyBatis CallSettersonnulls المقدمة لك. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، يرجى ترك رسالة لي. سوف يرد المحرر إليك في الوقت المناسب!