Ausführungskontext & Resolver
Erklärung, wie der MongoTemplateResolver den MongoExecutionContext nach Schlüssel auswählt und der DriverMongoExecutionContext die Grenzen für Datenbank, Sitzung und Mapping bereitstellt.
MongoTemplateResolver-Vertrag
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를 전달합니다.
Sammlungsbenennung
Wenn der Sammlungsname während der gesamten Anwendungslebensdauer vollständig festgelegt ist, kann DriverMongoExecutionContext.cachedCollectionNameResolver(...) verwendet werden. Für Resolver, deren Namen je nach tenant/request/time variieren, wird kein Cache-Helfer verwendet.
Sitzungsbereich und Transaktion
ClientSession, die in getTxJob(...) erstellt wurde, wird nur in MongoExecutionContext#getSessionScope() für dieselbe DSL-Ausführung propagiert. DriverMongoExecutionContext verwendet standardmäßig seinen eigenen MongoClient als Sitzungsbereich.