У меня проблемы с проекцией в Grails. Не могли бы вы помочь мне просмотреть их и предложить решения?
Я хочу запросить данные по многим таблицам, которые имеют взаимосвязь «многие-к-одному» и проекции некоторых свойств в них обоих. Например:
class Person {
int id
Имя строки
Адрес строки
static hasMany = [cars: Car]
}
class Car {
int id
Марка струны
длинная цена
Владелец лица
static ownTo = [владелец: человек]
}
Итак, как я могу использовать только один запрос withCriteria (применить проекцию), чтобы получить информацию об указанном автомобиле (включая марку, цену и имя владельца)? Можно ли использовать:
Car.withCriteria {
projection {
свойство («бренд»)
недвижимость ("цена")
свойство ("owner.name")
}
eq ("идентификатор", carId)
}
Могу ли я использовать проекцию, чтобы получить информацию об одном указанном человеке вместе с названиями всех его автомобилей? Например: [01, Perter, 01 Street A, [Mercedes, Toyota, Ducatti]]?
Особая ситуация: (с классом выше Person)
Человек может присоединиться ко многим организациям, и у организации может быть одна «родительская» организация (и наоборот, у организации может быть много других зависимых организаций). Но есть правило: человек может вступить только в одну дочернюю организацию данной организации. Итак, с данной организацией O и человеком P, каков самый быстрый способ получить информацию о P вместе с названием зависимой организации от O, членом которой является P. Я предпочитаю использовать проекцию Grails.
Вот модель данных:
class Person {
int id
Имя строки
Адрес строки
static hasMany = [connectedOrgs: Организация]
}
class Organization {
int id
Имя строки
Организация parentOrg
static hasMany = [участники: человек, childOrgs: организация]
}
Я новичок в Grails, и мне бы хотелось больше разбираться в GORM. Большое спасибо за вашу помощь.