SAPUI5 oData PUT 操作需要 GET ENTITY 实现

SAPUI5 oData PUT operation requires GET ENTITY implementation

我实现了 oData 服务的更新操作。当我尝试通过我的 SAPUI5 应用程序调用它时,我收到以下错误消息:

'XXX_GET_ENTITY' not implemented in data provider class

没错 - 我还没有实现 GET ENTITY 方法。 但是,有人能告诉我为什么我需要这个来更新吗?

服务请求的JS编码是这样创建的:

oDataModel.update("/EntitySetName(<key>)", oPayload, {
   success: function(oData) {
      ...
   },
   error: function(oError) {
      ...
   }
});

我感谢每一个提示/解释。

ODataModel 的默认更新方法是 patch/merge,请参阅 ODataModel class 的文档:

Trigger a PUT/MERGE request to the OData service that was specified in the model constructor.

The update method used is defined by the global defaultUpdateMethod parameter which is sap.ui.model.odata.UpdateMethod.Merge by default. [...]

PATCH_ENTITY 方法的默认实现首先调用 READ_ENTITY,然后将传入数据与检索到的数据合并以允许部分更新。来自这个方法的评论:

*-a patch request is a partial update of an entity. All provided components are patched.
*-The default implementation of patch_entity performs a read before update [...]

要执行 PUT 请求,请将 updateMethod 属性 设置为 sap.ui.model.odata.UpdateMethod.Put。