Представям се в средата на Grails (страхотно е). Жънех предимствата на динамично генерирани методи като диапазона findAllBy*
. Попаднах обаче на проблем и не съм сигурен как да продължа. Един час, прекаран в Google, също не ми донесе много.
Проблем
Имам клас като следния:
class Runner {
static hasMany = [owners: Owner]
}
И в моя Owner контролер искам да намеря всички Runner
обекти, които съдържат даден Owner
. На практика се опитвам да премина от many
към one
.
Пример
Ако имам Owner
обект, това изглежда нещо като
Owner[name="Dave"]
И аз имам Runner
с нещо като:
Runner[owners[Owner[name="Dave"], Owner[name="James"]]]
Моята заявка трябва да върне този Runner
обект, но не трябва да върне
Runner[owners[Owner[name="Bill"], Owner[name="James"]]]
Моите опити
Опитах се да използвам разширението inList
, но след известно допълнително проучване разбрах, че е предназначено за обратното. Моят код в момента е следният:
def runners() {
log.info("Runners")
List<Runner> runners;
Owner owner;
if (params.id) {
log.info("Id = " + params.id);
owner = Owner.get(params.id);
log.info("owner = " + owner.name);
// Grab runners in list thing.
log.info("Number of results = " + runners.size());
}
[results: results, jockeyInstance: jockey]
}
inList
? трябва да работи за този случай - person Igor Artamonov   schedule 25.02.2014inList
, според документацията беше за обратното. Защото, когато предавамList
и ако елементът в класа е вътре в товаList
, тогава го връщам. - person christopher   schedule 25.02.2014