Konteks Eksekusi & Resolver
Menjelaskan bagaimana MongoTemplateResolver memilih MongoExecutionContext berdasarkan kunci dan DriverMongoExecutionContext menyediakan batasan database, sesi, dan pemetaan.
Kontrak 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를 전달합니다.
Penamaan koleksi
Jika nama koleksi sepenuhnya tetap selama masa aplikasi, Anda dapat menggunakan DriverMongoExecutionContext.cachedCollectionNameResolver(...). Resolver yang namanya berubah tergantung pada tenant/permintaan/waktu tidak menggunakan helper cache.
Ruang lingkup sesi dan transaksi
ClientSession yang dibuat di getTxJob(...) hanya akan diteruskan ke MongoExecutionContext#getSessionScope() untuk eksekusi DSL yang sama. DriverMongoExecutionContext secara default menggunakan MongoClient miliknya sendiri sebagai ruang lingkup sesi.