В вашей модели возражения User
определите отношение между пользователями и группами :
static relationMappings = {
groups: {
relation: Model.ManyToManyRelation, // An user has many groups
modelClass: Group,
join: {
from: 'users.id',
through: {
from: 'memberhips.users_id',
to: 'memberhips.groups_id'
},
to: 'groups.id'
}
}
}
Затем в своей модели возражения Group
определите отношения между groups and users :
static relationMappings = {
users: {
relation: Model.ManyToManyRelation, // A group has many users
modelClass: User,
join: {
from: 'groups.id',
through: {
from: 'memberhips.groups_id',
to: 'memberhips.users_id'
},
to: 'users.id'
}
}
}
Затем используйте готовую загрузку для загрузки отношений:
User.query().eager('groups.[users]').findById(userId)
Запрос должен возвращать такую структуру (некоторые свойства, такие как address
игнорируются):
User {
id: 3,
name: 'name',
description: 'description',
groups: [ // User 3 has two groups: 1 and 2
{
id: 1,
name: 'name1',
users: [ // There are two member of group, 3 and 6
{
id: 3,
name: 'name',
description: 'description'
},
{
id: 6,
name: 'other',
description: 'other'
}
]
},
{
id: 2,
name: 'name2',
users: [
{
id: 3,
name: 'name',
description: 'description'
},
{
id: 7,
name: 'another',
description: 'another'
}
]
},
]
}