我正在尝试使用SAP UI5和oData 2 Model从Employee表中读取数据。我正在使用带有主键的oData模型的Read方法,它运行良好但是当我尝试使用非关键字段时,它会收到错误消息
没有关键属性' Employee_Name'存在
oModel.read("/Employee_Service(Employee_ID=2)", {
success: function(oData, response) {
alert("Success!");
},
error: function(response) {
alert("Error");
}

此处Employee_ID是主键,此代码运行良好。
oModel.read("/Employee_Service(Employee_Name='Bob')", {
success: function(oData, response) {
alert("Success!");
},
error: function(response) {
alert("Error");
}
如前所述,此代码出现错误。
你能帮我解决一下这个问题吗?
答案 0 :(得分:2)
只能以这种方式访问分配为主键的属性:
$scope.results.pagination "=" searchService.formatResults(es_return.hits.hits);
要使用其他属性访问记录,您可以使用Employee_Service(Employee_ID=2)
查询选项。
$ filter系统查询选项允许客户端过滤请求URL寻址的资源集合。使用$ filter指定的表达式将针对集合中的每个资源进行评估,并且只有表达式求值为true的项才会包含在响应中。
所以你的网址将是这样的:
$filter
答案 1 :(得分:0)
我发现了一篇帮助我解决问题的文章。我尝试这个应该工作,但我不知道为什么它会出错。但是,如果任何人可以帮助我找到我的第一种方法的答案(如上所述),总是欢迎。这是我做的解决方案。
var la_filters = new Array();
var lv_Filter = new sap.ui.model.Filter({
path: "BOWTIE_CLASS",
operator: sap.ui.model.FilterOperator.EQ,
value1: bowtieClass
});
la_filters.push(lv_Filter);
oModel.read("/Employee_Service", {
filters: la_filters,
success: function(oData, response) {
alert("Success");
},
error: function(response) {
alert("Error");
}
我在此处找到的提示网址https://scn.sap.com/thread/3781251