GORMでモデルのstructをwhereに使うと動かない
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
This post is licensed under CC BY 4.0 by the author.