我无法使用odata4j库检索相关实体。我的问题如下:
A 与 B 有一对多的关系。A 有一个 B 类型项目的列表“bs”。我创建了实体 A 和链接使用
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", a.getId());
OEntity entityB = consumer.createEntity("B").properties(OProperties.string("name", "some name")).link("a", OEntityKey.create(map)).execute();
然后我使用以下方法检索实体 B,其中 convert 将检索到的对象的属性分配给 A 类型的对象:
A b = convert(consumer.getEntity("A", id).expand("bs").execute());
在转换中,我尝试使用以下方法获取相关实体:
OEntity bsOEntity = a.getLink("bs", OLink.class).getRelatedEntity();
以上导致检索到链接,但“getRelatedEntity”返回 null
我是否使用了错误的链接和相关实体?如果是这样,我将如何在 Odata4j 中检索相关实体?网上的例子不多。
您的帮助将不胜感激。
谢谢
编辑: 我还尝试使用以下方法检索相关实体:
ORelatedEntitiesLink link = (ORelatedEntitiesLink) a.getLinks().get(0);
OEntity retrievedEntity = consumer.getEntities(link).top(1).execute().first();
而且我尝试使用创建链接,这似乎以相同的方式工作,但需要额外调用来获取实体 B:
OEntity bEntity = consumer.getEntity("A", FOREIGN_KEY_VALUE).execute();
OEntity medEntity = consumer.createEntity("B").properties(OProperties.string("name", "some name")).link("a", bEntity).execute();