Odata 如何从SAPUI5应用程序处理HANA中的自动递增ID?

Odata 如何从SAPUI5应用程序处理HANA中的自动递增ID?,odata,sapui5,hana,Odata,Sapui5,Hana,在我的SAPUI5应用程序中,我获得了以下函数,该函数获取数据并在我的HANA DB中创建一个条目: onCreateNewCustomer: function(){ var oEntry = {}; oEntry.NAME = this.byId("name").getValue(); oEntry.CITY = this.byId("city").getValue(); oEntry.PHONE = this.byId("pho

在我的SAPUI5应用程序中,我获得了以下函数,该函数获取数据并在我的HANA DB中创建一个条目:

onCreateNewCustomer: function(){
        var oEntry = {};
        oEntry.NAME = this.byId("name").getValue();
        oEntry.CITY = this.byId("city").getValue();
        oEntry.PHONE = this.byId("phone").getValue();                
        oEntry.ID = this.byId("id").getValue();

        // Post data to the server
        this.getOwnerComponent().getModel("CustomerModel").create("/Customer", oEntry, null);
        this.byId("createCustomer").close();
        //location.reload();
}
创建过程正常,并且我的条目被保存。在下一步中,我希望以这种方式在HANA中实现我的表,即条目的ID将自动递增,以便用户不必输入它。我使用以下命令创建我的表:

create column table TABLE
     (ID bigint not null primary key generated by default as IDENTITY,
      FIRSTNAME nvarchar(30))
这样,就创建了表。现在的问题是,如果我使用上面的代码而不提供ID,控制台会记录以下错误:

出现以下问题:HTTP请求失败,请求错误,序列化资源缺少成员“ID”的值

该条目未保存在my DB中。如果我在我的HANA工作台中执行以下SQL语句而不提供ID,则它可以工作:

insert into TABLE (FIRSTNAME) values (‘David’);
insert into TABLE (FIRSTNAME) values (‘Mike’);      
insert into TABLE (FIRSTNAME) values (‘Bobby’); 

所以我在谷歌上做了一些搜索,但没有找到一个合适的解决方案。我的目标是保存条目,由HANA DB提供ID,而不从SAPUI5应用程序提供ID

您是否尝试通过注释下面的代码来创建新记录

oEntry.ID = this.byId("id").getValue();

对于标识字段,如果提供值,则必须明确标识提供的是列值。否则,只需从INSERT命令中省略COLUMN名称和值。

可能您使用的是不支持自动递增的ODataV2 XSODATA实现。这里可能的解决方案是使用数据库序列,然后通过单独的请求从中获取一个值,并在OData
create
语句中使用它