SAP CAP 节点.js OData 查询 lambda 运算符与 HANA 云数据库

SAP CAP Node.js OData query lambda operator with HANA Cloud Database

提问人:rehan 提问时间:10/23/2023 更新时间:10/23/2023 访问量:51

问:

我正在使用 Hana-cloud 数据库开发 SAP CAP Node.js 项目,该数据库已部署到 SAP BTP Cloud Foundry。

cds -v
@sap/cds: 7.3.0
@sap/cds-compiler: 4.3.0
@sap/cds-dk: 7.3.0
@sap/cds-dk (global): 7.3.0
@sap/cds-fiori: 1.1.0
@sap/cds-foss: 4.0.2
@sap/cds-mtxs: 1.12.1
@sap/eslint-plugin-cds: 2.6.3
Node.js: v18.14.2

CAP OData 服务本地响应:

{
    "@odata.context": "$metadata#Books",
    "value": [
        {
            "ID": 17,
            "title": "CAP - what's new in 2023",
            "price": 29.99,
            "author_ID": 999,
        "email":[ "[email protected]", "[email protected]"]
        },
        {
            "ID": 85,
            "title": "CAP - New Features",
            "price": 39.99,
            "author_ID": 997,
        "email":[ "[email protected]", "[email protected]", "[email protected]"]
        },
        {
            "ID": 42,
            "title": "CAP - Debugging",
            "price": 59.99,
            "author_ID": 900,
        "email":[ "ab[email protected]", "[email protected]"]
        }
    ]
}

要在本地测试 Lambda 运算符对“email”数组字段的查询,请使用以下查询。

###
# Test 1
GET http://localhost:4004/browse/Books?
  &$filter=email/any(d:d eq '[email protected]')

###
# Test 2
GET http://localhost:4004/browse/Books?
  &$filter=email/all(d:d eq '[email protected]')

###
# Test 3
GET http://localhost:4004/browse/Books?
  &$filter=label/any(r:contains(r,'abc'))

###
# Test 4
GET http://localhost:4004/browse/Books?
  &$filter=label/any(r:startswith(r,'abc'))

上述所有本地测试都给出了相同的响应,如下所示:enter image description here

在SAP CAP中阅读了几篇关于Lambda运算符的文章,发现lambda运算符与HANA配合得很好,这与SQLite DB不同,但从上面可以看出,它对我不起作用。

请指导。

问候。

节点.js SAP业务技术平台 SAP云铸造厂 SAP CAP 业务应用工作室

评论


答: 暂无答案