Don_t Work Use Where With Model_s Struc
Problem
I defined model like below:
type Hostname struct {
ID uint `gorm:"primaryKey"`
IP string `gorm:"type:string;index:ip_uq,unique;"`
Hostname *string `gorm:"type:string;"`
ErrorFlg bool `gorm:"type:bool;default:false;"`
}
And I’d like to perform like below:
SELECT * FROM `hostnames` WHERE hostname is null and error_flg = false LIMIT 10
I tried with db.Where(&models.Hostname{Hostname: nil, ErrorFlg: false}).Find(&hostnames)
, then got message which represented raw SQL without “where” a log below:
[11.348ms] [rows:78] SELECT * FROM `hostnames`
Solution
No use model struct in “Where”.
db.Where("hostname is null and error_flg = ?", false).Limit(10).Find(&hostnames)
References
(TIL) Don’t use struct in GORM while building “where” clause | by Michał Kutrzeba | Medium