-
-
Notifications
You must be signed in to change notification settings - Fork 335
Closed
Description
调用GetFieldByName(fieldName)无法获取对应OrderExpr
prodID, ok := query.Product.GetFieldByName("prod_id")
if !ok {
err := errors.New("查找字段不存在")
return []*model.Product{}, err
}
生成的model/products.gen.go
文件:
package model
const TableNameProduct = "products"
// Product mapped from table <products>
type Product struct {
ProdID string `gorm:"column:prod_id;primaryKey" json:"prod_id"`
VendID int32 `gorm:"column:vend_id;not null" json:"vend_id"`
ProdName string `gorm:"column:prod_name;not null" json:"prod_name"`
ProdPrice float64 `gorm:"column:prod_price;not null" json:"prod_price"`
ProdDesc string `gorm:"column:prod_desc" json:"prod_desc"`
}
// TableName Product's table name
func (*Product) TableName() string {
return TableNameProduct
}
生成的query/products.gen.go
文件:
func (p *product) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
_f, ok := p.fieldMap[fieldName]
if !ok || _f == nil {
return nil, false
}
_oe, ok := _f.(field.OrderExpr)
return _oe, ok
}
_f进行类型断言的时候会把ok置为false。_oe则为nil。
generate.go
文件:
func main() {
g := gen.NewGenerator(gen.Config{
OutPath: "../../dal/query",
Mode: gen.WithDefaultQuery | gen.WithQueryInterface,
})
g.UseDB(connectDB(MySQLDSN))
//g.ApplyBasic(g.GenerateModel("products"), g.GenerateModel("customers"))
g.ApplyBasic(g.GenerateAllTable()...)
g.ApplyInterface(func(model.Querier) {}, g.GenerateModel("products"))
g.ApplyInterface(
func(model.Filter) {},
//g.GenerateModel("products"),
//g.GenerateModel("customers"),
//g.GenerateModel("productnotes"),
//g.GenerateModel("vendors"),
//g.GenerateModel("orders"),
//g.GenerateModel("orderitems"),
g.GenerateAllTable()...,
)
g.Execute()
}
shuqingzai
Metadata
Metadata
Assignees
Labels
No labels