The current implementation of DefaultODataBatchHandler doesn't provide any kind of Unit Of Work semantics as defined for changesets in the OData V3 specification. The current implementation processes the changeset but doesn't perform any kind of rollback operation in case of failure, which is the wrong default behavior.
Provide an abstract method that the user needs to implement in order to provide rollback semantics to be able to use an ODataBatchHandler and provide a default implementation in the DefaultODataBatchHandler that handles the majority of the use cases.
The excerpt from the ODataspec:
> "All operations in a ChangeSet represent a single change unit so a service MUST successfully process and apply all the requests in the ChangeSet or else apply none of them. It is up to the service implementation to define rollback semantics to undo any requests within a ChangeSet that may have been applied before another request in that same ChangeSet failed and thereby honor this all-or-nothing requirement"
Provide an abstract method that the user needs to implement in order to provide rollback semantics to be able to use an ODataBatchHandler and provide a default implementation in the DefaultODataBatchHandler that handles the majority of the use cases.
The excerpt from the ODataspec:
> "All operations in a ChangeSet represent a single change unit so a service MUST successfully process and apply all the requests in the ChangeSet or else apply none of them. It is up to the service implementation to define rollback semantics to undo any requests within a ChangeSet that may have been applied before another request in that same ChangeSet failed and thereby honor this all-or-nothing requirement"