@Magus_Education

Почему db.Find сьедает одно из значений таблицы?

Добрый день. В официальной документации прочитал что db.find по сути select * from, однако используя select * from через MySQL получаю 607db90eac95e638386069.png
Тогда как используя в коде db.Find мне выдаёт 607db9695cb57974415719.png
Собственно вопрос. Почему db.Find сьедает userId и вместо положенного 7, всегда выдаёт 0?

Структура в коде:
type Post struct {
ID int `gorm:"primaryKey"`
UserId int `json:"userId"`
Title string `json:"title"`
Body string `json:"body"`
}
Таблица в БД:
Columns:
id int PK
userId int
title varchar(100)
body varchar(250)

P.S. Дичайше извиняюсь за шакальность второго скриншота, вот пример буквами: "ID":61,"userId":0,"title":"voluptatem doloribus consectetur est ut ducimus","body":"ab nemo optio odio\ndelectus tenetur corporis similique nobis repellendus rerum omnis facilis\nvero blanditiis debitis in nesciunt doloribus dicta dolores\nmagnam minus velit"
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
EvgenyMamonov
@EvgenyMamonov
Senior software developer, system architect
99%, что дело в названиях полей
Если из базы вы извлекаете данные в структуру Post - допишите там db:"userId", чтобы получилось примерно так
UserId int `json:"userId" db:"userId"`
или для gorm
UserId int `json:"userId" gorm:"column:userId"`
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
TNPTSYWWCC
@TNPTSYWWCC
And I Told Them I Invented Times New Roman
UserID попробуй так, насколько помню там важно именование полей именно так, чтобы связи автоматически работали. И показать бы код, ты делаешь запрос на получение Posts, но UserID приходи пустой? Из вопроса не совсем понятно.

GORM ::: Belongs To
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Ovision Санкт-Петербург
от 100 000 до 300 000 ₽
ELMA Санкт-Петербург
от 80 000 до 180 000 ₽