У меня есть объект домена, который имеет отношение 1 - M с другим объектом домена, например,
Персона 1 -> M Langauges
Я зарегистрировал маршаллер объекта JSON, чтобы маршалировать объект Person. Вариант использования, с которым я имею дело, - это отображение персоны в табличном формате, где по умолчанию отображается основной язык.
Проблема, с которой я сталкиваюсь, заключается в том, что пользователь генерирует поиск по языку, и я хочу отобразить соответствующий язык для человека, а не основной язык.
Проблема, с которой я столкнулся, заключается в том, что я не знаю, как получить доступ к языку, который ищется в маршаллере объектов, и поэтому не могу определить соответствующий язык для отображения в JSON для табличного формата.
Вот пример кода для Персона:
JSON.registerObjectMarshaller(Person) {
def returnArray = [:]
returnArray['id'] = it.id
returnArray['name'] = it.displayName?:""
//I would like to be able to get the language matching a search param here
//when a search has been carried out
returnArray['language'] = it.primaryLanguage?:""
}
В настоящее время у меня есть обходной путь - иметь PersonWrapper, где я передаю поисковый термин в конструкторе, регистрирую маршаллер объекта для оболочки и фильтрую в оболочке.
Это кажется мне довольно расточительным, поскольку мне нужно перебирать результаты моего домена и создавать оболочку для каждого экземпляра.
Будем благодарны за любые предложения.