Проблема определения межстоловых отношений - PullRequest
1 голос
/ 16 марта 2019

Цель

Я пытаюсь установить простую has_many ассоциацию с Гормом: у человека много домашних животных.

Задача

При попытке сохранить модель Person появляется следующая ошибка.

неподдерживаемый тип [] model.Pet, кусок структуры

Подробнее

Предположим, я хочу сохранить Person, в котором много Pets.

type Person struct {
    UUID `gorm:"PRIMARY_KEY" json:"uuid"`
    Pet  []Pet `gorm:"foreignkey:PersonUUID:association_foreignkey:UUID"`
}

type Pet struct {
    UUID `gorm:"PRIMARY_KEY" json:"uuid"`
  PersonUUID string
}

Затем я пытаюсь создать эти две модели.

personUUID := "dcf4b3c6-d94c-4b2c-9d66-1cbaedd2cc44"
pets := []Pet{
  Pet{
    UUID: "..",
    PersonUUID: personUUID,
  }
}
person := Person{
  UUID: personUUID,
  Pet: Pet,
}

db.Where("uuid = ?", person.UUID).Update(&person)

Тогда я получаю следующую ошибку.

sql: converting argument $1 type: unsupported type []model.Pet, a slice of struct

Есть идеи, почему это может происходить?

1 Ответ

0 голосов
/ 16 марта 2019

Я обнаружил, что это происходит, только если вы используете Update вместо Save.Это странно, потому что оба должны работать одинаково, за исключением того, что Update попытается сохранить различные поля, в то время как Save заменит текущие значения новыми значениями.

...