سياق التنفيذ & المحلل
يصف كيفية اختيار MongoTemplateResolver لـ MongoExecutionContext حسب المفتاح وكيف يوفر DriverMongoExecutionContext حدود قاعدة البيانات والجلسة والتخطيط.
عقدة MongoTemplateResolver
MongoTemplateResolver.java
javaReactiveMongoDsl<K>는 key마다 MongoExecutionContext를 가져옵니다. MongoExecutionContext가 MongoDatabase, ClientSession, collection naming, entity ↔ Document mapping과 save lifecycle hook의 경계를 담당합니다.
DriverMongoExecutionContext
기본 collection 이름은 entity simple class name을 decapitalize해서 결정합니다. 프로젝트의 실제 naming 규칙이 다르면 생성자에 collection-name resolver를 전달합니다.
تسمية المجموعة
إذا كان اسم المجموعة ثابتًا تمامًا طوال عمر التطبيق، يمكن استخدام DriverMongoExecutionContext.cachedCollectionNameResolver(...). لا تستخدم المساعدات المؤقتة للمحلل الذي يتغير اسمه حسب tenant/request/time.
نطاق الجلسة والمعاملة
ClientSession الذي تم إنشاؤه في getTxJob(...) يتم تمريره فقط إلى نفس تنفيذ DSL عبر MongoExecutionContext#getSessionScope(). يستخدم DriverMongoExecutionContext بشكل افتراضي MongoClient الخاص به كنطاق جلسة.