Как получить связанные объекты Odata Odata4j

У меня возникли проблемы с получением связанных объектов с помощью библиотеки odata4j. Моя проблема заключается в следующем:

A имеет отношение «один ко многим» с B. A имеет список «bs» элементов типа B. Я создал объект 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();

person Kris    schedule 01.10.2013    source источник


Ответы (1)


Вы пробовали getRelatedEntities() вместо getRelatedEntity(). Из вашего объяснения я понимаю, что у A есть коллекция B, поэтому попробуйте

List<OEntity> bsOEntities = a.getLink("bs", OLink.class).getRelatedEntities();

Меня устраивает.

person user5252279    schedule 25.12.2013
comment
Привет, извините, я только сейчас это увидел. Да, мы тоже пробовали, и это не сработало. Насколько я помню, проблема оказалась в наших аннотациях. Также мы пытались посмотреть на отношения с другой стороны. Хотя спасибо за ответ :) - person Kris; 13.02.2014