go-gorm / gorm

The fantastic ORM library for Golang, aims to be developer friendly
https://gorm.io
MIT License
36.91k stars 3.93k forks source link

How do I get Preload with Select to work? #6318

Closed cinjon closed 1 year ago

cinjon commented 1 year ago

My two types are below. I would like to return the user plus its known last latitude and longitude and nothing else. However, I am struggling to do this and the best I have right now is the following that returns everything in the embedded location.

database.DB.Debug().Preload("Locations").Where("user_id = ?", uid).Find(&familiars)

How do I get this to work properly? All attempts to select from the location object are just producing null.

type Location struct {
    gorm.Model
    UserID string    `json:"userId"`
    User   User  `gorm:"foreignKey:userID;references:Id"`
    Latitude   float64   `json:"latitude"`
    Longitude  float64   `json:"longitude"`
    RecordedAt time.Time `json:"recordedAt,omitempty"`
}

type User struct {
    gorm.Model
    Id       string    `gorm:"type:uuid;primaryKey" json:"id"`
    Name     string    `json:"name"`
    Email    string    `json:"email;unique"`
    Locations               []Location `json:"locations"`
}
github-actions[bot] commented 1 year ago

The issue has been automatically marked as stale as it missing playground pull request link, which is important to help others understand your issue effectively and make sure the issue hasn't been fixed on latest master, checkout https://github.com/go-gorm/playground for details. it will be closed in 30 days if no further activity occurs. if you are asking question, please use the Question template, most likely your question already answered https://github.com/go-gorm/gorm/issues or described in the document https://gorm.ioSearch Before Asking