2015-06-04 3 views
1

Я разрабатываю функцию поиска, которая будет работать от службы OData. Он будет возвращать один или список объектов заголовка в качестве результатов. Многие поля, которые нам нужно найти, не находятся в объекте заголовка. Они находятся только в дочерних объектах (навигационные свойства). Каков правильный подход, чтобы иметь возможность выполнять поиск OData с дочерним полем и возвращать список родительских объектов.Фильтр OData для дочернего и возвращаемого родителя

Это похоже на то, что я ожидал бы сделать в стандартном SQL как запрос «существует».

Я использую Java - Apache Olingo для своего проекта, но я считаю, что это общий вопрос OData.

ответ

2

Да это вполне возможно, просто включить путь ребенка в $ фильтре

например что у нас есть заголовок Aircraft и ребенка Авиакомпания

/Aircraft бы перечислить все самолеты для всех авиакомпаний, самолета? $ фильтр = АВИАБИЛЕТЫ/Код эк «BA» выведет список всех воздушных судов для BA только

Для вас 2 запроса , чтобы вернуть дочернего элемента и фильтр на родительском объекте ... Не уверен в возвращении JUST child - вы можете сделать это, если вы разрешите одному родителю по его ключу, eg Самолет (123)/Авиакомпания - найдет Самолет с ключом 123 и вернет JUST информацию о навигации для ребенка авиакомпании

для фильтрации и включения нескольких заголовков, тогда я думаю, что ваш единственный вариант - использовать $ expand для включения детской информации с информацией заголовка. , например. ?

Aircraft $ фильтр = BodyType эк 'NB' & $ = расширение Авиакомпания - так это фильтрует самолет заголовок на тип NB (узкий корпус), и включает в себя детскую Airline информацию вместе с ним.

Надеюсь, это поможет.

1

Если речь идет о OData protocl себя, это поддерживается как: Адрес/Город эк «Redmond» Адрес/Город пе «London» (http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part1-protocol/odata-v4.0-errata02-os-part1-protocol-complete.html#_Toc406398301)

, когда речь идет о реализации в Apache Olingo , вы можете задавать вопросы в своем списке рассылки: [email protected] и вы можете следовать http://olingo.apache.org/support.html, чтобы присоединиться к дискуссионному списку.

+0

Спасибо. Это было очень полезно. Тем не менее, я также блуждал, если я могу вернуть дочерний объект и фильтровать родительский объект – Chaim

Смежные вопросы