الفحص الذكي للتغييرات (Dirty checking) والـ Flush
في هذا الدرس 4 موضوعات
هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.
نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.
في هذا الدرس
predict when SQL is sent.
الموضوعات المخطط لها
- Dirty checking: at flush, Hibernate compares each managed entity with its loaded snapshot and issues
UPDATEfor changes. - No
savecall is needed for managed entities. - Flush happens at commit, and before a query that might need pending changes (auto flush), or on
flush(). IDENTITYinserts are sent atpersisttime.- Read-only code should not trigger updates; keep setters purposeful.
تفاصيل المخطط المبدئي
عرض عملي
@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.
التطبيق
طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.
تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.