Go 选择/查找模型时忽略列
我对我的模型有一些问题:Go 选择/查找模型时忽略列,go,orm,go-gorm,Go,Orm,Go Gorm,我对我的模型有一些问题: type MaterieprimeAnalisi struct { GUIDAnalisiMP string `gorm:"size:50;not_null;primary_key;"` GUIDMP null.String `gorm:"size:50;"` Materieprime Materieprime
type MaterieprimeAnalisi struct {
GUIDAnalisiMP string `gorm:"size:50;not_null;primary_key;"`
GUIDMP null.String `gorm:"size:50;"`
Materieprime Materieprime `gorm:"foreignkey:GUIDMP;associationforeignkey:GUIDMP;"`
GUIDPA null.String `gorm:"size:50;"`
Parametrianalitici Parametrianalitici `gorm:"foreignkey:GUIDPA;associationforeignkey:GUIDPA;"`
Valore null.Float
}
当Idb.AutoMigrate()
按预期创建此表和相关表时,关联和外键工作正常。
我的问题是,当我直接选择所有行时,如何排除某些字段:
var ma []models.MaterieprimeAnalisi
res := db.Find(&ma)
或者当我将其与另一个表连接时:
var ma []models.MaterieprimeAnalisi
res := db.Joins("Parametrianalitici").Find(&ma)
例如,如果我想从输出结果中省略
materialtime
或parametriantici
,我该怎么做?GORM文档通常很差。有三种方法可以在查询中省略列。第一种方法是使用tx.Omit
功能
var ma []models.MaterieprimeAnalisi
_ := db.Omit("Materieprime", "Parametrianalitici").Find(&ma)
然而,你永远不会在网站上的示例中找到这个函数。GORM 2.0中推荐的方法是使用tx.Select
或使用智能选择功能
tx.Select
可以像您想象的那样使用:
var ma []models.MaterieprimeAnalisi
_ := db.Select("GUIDAnalisiMP", "GUIDMP", "GUIDPA", "Valore").Find(&ma)
对于智能选择
,您可以创建仅包含所需字段的分部结构:
type MaterieprimeAnalisiSubset struct {
GUIDAnalisiMP string
GUIDMP null.String
GUIDPA null.String
Valore null.Float
}
var ma []MaterieprimeAnalisiSubset
tx.Model(&models.MaterieprimeAnalisi{}).Find(&ma)
文件: