我们目前正在努力为实体提供 OData 服务,该实体的键的一部分是 DateTime 类型的属性。此键属性不是 SAP Cloud Provisioning SDK 提供的 OData 请求中的键映射的一部分。这似乎是由于 com.sap.cloud.sdk.service.prov.v2.data.provider.CXSDataProvider.getKeys(List) 方法中的请求解析中的错误:
if (type.toString().equals("Edm.Date")) {
Date value = type.valueOfString(keyPredicate.getLiteral(), EdmLiteralKind.DEFAULT, property.getFacets(), Date.class);
keys.put(property.getName(), value);
}
由于 OData 标准中没有 Edm.Date 类型,我的猜测是以下内容是正确的:
if (type.toString().startsWith("Edm.Date")) {
[s. above]
}
这是正确的还是我们在这里做错了什么?此外,方法本身上有一个 TODO 标记,指出当前仅支持 EDM 类型的子集作为键。有没有计划修复这个 TODO?