Запрос Gorm без столбцов Gorm.Model

Как я могу опустить столбцы из gorm.Model. Например. Дата создания, Дата изменения.

Рассмотрим следующую модель:

type User struct{
    gorm.Model
    Firstname string
    Lastname string
}

Теперь я могу выбрать конкретный столбец с помощью:

db.Select("Firstname").Find(&users)

Однако, хотя он исключает столбец Lastname, он не исключает столбцы, которые поступают из gorm.Model. Результат будет примерно таким:

[{"ID":0,"CreatedAt":"0001-01-01T00:00:00Z","UpdatedAt":"0001-01-01T00:00:00Z","DeletedAt":null,"Firstname":"Foobar"}]

Мне нужен только столбец Имя.


person The Fool    schedule 16.09.2019    source источник


Ответы (1)


Вы можете определить свой User тип без включения gorm.Model struct

type User struct{
    Firstname string
    Lastname string
}

В качестве альтернативы вы можете использовать два типа: один с gorm.Model, а второй без него. Последний можно использовать при получении значений без свойств gorm.Model.

person edkeveked    schedule 16.09.2019
comment
Спасибо за Ваш ответ. Если я создам вторую структуру User (которая, на мой взгляд, не так уж чиста), она должна иметь другое имя. Я предполагаю, что мне нужно сказать gorm, чтобы он посмотрел на таблицу User, даже если у модели другое имя, верно? - person The Fool; 17.09.2019
comment
Конечно, если вы определите структуру второго типа, она будет иметь другое имя. Вы будете использовать структуру второго типа только как Find параметры - person edkeveked; 17.09.2019