gogo-gorm

Return nil struct instead of empty struct go-gorm


With the following model:

type User struct {
    UUID string         `gorm:"primary_key"`
    Name string         `gorm:"NOT NULL"`
    CreatedAt time.Time
    UpdatedAt time.Time
}

If you do the following query with GORM for a user that does NOT exist:

var user User
db.First(&user)

You end up receiving an empty struct with the date fields populated. Is there a way to instead just receive a nil struct back or am I thinking about this in the wrong way?


Solution

  • In GORM you are supposed to check if the record is empty, with a method call:

    if db.First(&user, 77).RecordNotFound() {
        log.Println("UUID:", 77, err)
    }