You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Java SDK以主键定位OData实体并生成指定格式URL?

解决方案

完全可以用Java SDK实现你要的URL格式,不需要自行构建HTTP客户端。问题出在你当前用的是集合查询写法,SDK默认会生成$filter参数;改用主键定位实体的API就能生成目标格式的URL。

具体实现方式

OData Java SDK(比如SAP Cloud SDK、OData V4官方SDK)都提供了getByKey方法,专门用于通过主键直接定位单个实体,再结合关联属性的访问,就能生成你需要的路径:

// 1. 通过主键获取myEntity的引用,传入两个主键值(key1和key2)
MyEntity entityRef = MyEntity.getByKey("12345", LocalDate.of(2022, 2, 1)).build();

// 2. 直接访问Results关联,发起请求获取结果
List<MySecondEntity> results = entityRef.results().executeRequest(yourServiceInstance);

或者用链式调用简化:

List<MySecondEntity> results = MyEntity.getByKey("12345", LocalDate.of(2022, 2, 1))
    .results()
    .executeRequest(yourServiceInstance);

为什么这个写法能生成目标URL

  • getByKey方法会构造出myEntity(key1='12345',key2=datetime'2022-02-01')的实体定位路径,而非用$filter过滤集合
  • 直接调用.results()会在路径后追加/Results,最终生成的URL完全符合你在GW客户端中使用的格式,不需要额外的$expand参数

内容的提问来源于stack exchange,提问作者Tobias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:52:28