انتقل إلى المحتوى
أمين أبوزيد
درس مخطط لهJNR-028-L05

الفحص الذكي للتغييرات (Dirty checking) والـ Flush

  • الدرس 5 من 8
  • Junior
في هذا الدرس 4 موضوعات

هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.

نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.

في هذا الدرس

predict when SQL is sent.

الموضوعات المخطط لها

  • Dirty checking: at flush, Hibernate compares each managed entity with its loaded snapshot and issues UPDATE for changes.
  • No save call is needed for managed entities.
  • Flush happens at commit, and before a query that might need pending changes (auto flush), or on flush().
  • IDENTITY inserts are sent at persist time.
  • Read-only code should not trigger updates; keep setters purposeful.
تفاصيل المخطط المبدئي

عرض عملي

java
@Transactional
void rename(Long id, String name) {
    Product p = repo.findById(id).orElseThrow(); // select
    p.setName(name);                             // nothing yet
}                                                // update at commit

اختبر فهمك

When does the update above run?

أظهر الإجابة

At flush, which happens on commit.

التطبيق

طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.

المختبر والتمارين الاختبار

تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.

اكتب للبحث في المستويات والمراحل والوحدات والدروس.