This commit makes sure to translate ClientBulkWriteExceptions to BulkOperationException.
It also includes some nullability fixes and updates the documentation.
See: #5087
Also, use PersistentEntity instead of a Class and Entity mix.
Remove inCollection(…).update style in favor of capturing inCollection(…, it -> update) style to avoid two programming models. Remove typing to allow usage of Document and entities with the bulk API.
See: #5087
Original Pull Request: #5169
For bulk write operations we decoupled the Bulk from the actual execution.
This eliminates the need to go through a dedicated BulkOperations interface and enables direct use via MongoOperations.
In difference to the existing BulkOperations, Lifecycle events and conversions are triggered on calling the bulk write method on MongoOperations.
In case of ongoing transaction the active ClientSession is passed on to method calls on MongoClient.
See: #5087
Original Pull Request: #5169
Simplify code flow by using newly introduced Criteria.eq().
Make sure to consider a potential explicit field target type when creating empty check.
Original Pull Request: #5147
The Criteria API now offers a dedicated eq method abstracting MongoDB $eq query operator. This allows users to create $not $eq operations instead of having to defer to the ne method.
See: #4606
Add IS_EMPTY and IS_NOT_EMPTY case handling to MongoQueryCreator.
For String properties, compare with empty string using $eq/$ne.
For Collection properties, use $size operator.
For Map and other types, compare with empty document.
Closes: #4606
Original Pull Request: #5147
Signed-off-by: backend-choijunhyeong <ajfeh22@gmail.com>
This commit makes sure to create a new filter query object if needed instead of modifying the source query.
In doing so we retain the original source and prevent errors when attempting to alter immutable sources.
Closes#5159
Original pull request: #5160
Original pull request: #5156Closes#5155
This commit makes sure to invoke the id check after publishing the before convert event to prevent failures where the event listener is responsible for setting the id.
Introduce showExpandedEvents flag to ChangeStreamOptions and propagate to sync/reactive change streams so expanded events can be consumed.
Closes#5069
Original pull request: #5112
Signed-off-by: Kyuhong Han <roy0424@naver.com>