如果我正在寻找信用卡号为CreditCardNumber
的人,这是这样做的正确方法吗?
type Person struct {
gorm.Model
Name string
CreditCard CreditCard
}
type CreditCard struct {
gorm.Model
PersonID *uint
Number string
}
database.dbClient.Preload("CreditCard").Where("credit_card.number = ?", CreditCardNumber).Joins("left join credit_cards on person.id = credit_card.person_id AND credit_card.deleted_at is NULL").First(&Person)
[如果只有信用卡像您的查询一样启用了软删除, (您仅检查信用卡的delete_at)
db.Unscoped().Preload("Person").Find(&CreditCard)
如果信用卡和个人模型都启用了软删除(您要检查个人和信用卡的delete_at字段)
db.Unscoped().Preload("Person", func(db* gorm.DB) *gorm.DB){
return db.Unscoped()
}).Find(&CreditCard)