Gorm Extra, где 1 <> 1 во многих - PullRequest
       27

Gorm Extra, где 1 <> 1 во многих

0 голосов
/ 07 октября 2019

У меня есть две модели (структуры). User и Group. Эти модели имеют много-много взаимосвязей.

Когда я пытаюсь создать запрос db.Unscoped().Model(&group).Related(&users, "Users"), это возвращает:

SELECT users.* FROM users INNER JOIN user_groups ON user_groups.owner_id = users.id WHERE (1 <> 1).

Объекты:

type Group struct {
    gorm.Model
    ID    uint   `json:"id"`
    Name  string `json:"name"`
    Users []User `gorm:"many2many:user_groups;association_jointable_foreignkey:owner_id"`
}
type User struct {
...
Groups                    []Group `gorm:"many2many:user_groups;association_jointable_foreignkey:group_id"`
}

Обработчик

users := []models.User{}
group := models.Group{}

db.Unscoped().Model(&group).Related(&users, "Users")

Я не знаю причины для генерации дополнительных where.

1 Ответ

0 голосов
/ 04 ноября 2019

Проблема исправлена.

Я исключил gorm.Model в структуре:

type Group struct {
    ID    uint   `json:"id"`
    Name  string `json:"name"`
    Users []User `gorm:"many2many:user_groups;association_jointable_foreignkey:owner_id"`
}

И в запросе:

db.Model(&group).Related(&users)

С уважением.

...