【问题标题】:How to define enum type in beego orm model?如何在beego orm模型中定义枚举类型?
【发布时间】:2021-08-11 13:54:32
【问题描述】:

如何在我的 beego orm 模型中定义枚举类型?

我试过了:

model.go

type User struct {
    Id              string         `json:"id" orm:"pk;"`
    Gender          Gender         `json:"gender" orm:"type(gender)" default:"X"`
}

type Gender string

const (
    GenderX     Gender = "X"
    GenderMan   Gender = "MAN"
    GenderWomen Gender = "WOMEN"
)

func (e *Gender) Scan(value interface{}) error {
    *e = Gender(value.(string))
    return nil
}

func (e Gender) Value() (driver.Value, error) {
    return string(e), nil
}

func (e Gender) String() string {
    return string(e)
}

枚举确实已经存在于数据库中。

【问题讨论】:

    标签: postgresql go orm beego


    【解决方案1】:

    在 Beego 中,枚举不存在。您可以在数据库中定义为枚举。

    gender enum('X', 'WOMAN', 'MAN')default('X')
    

    而且模型定义应该是这样的。

    type User struct {
        Id              string         `json:"id" orm:"pk;"`
        Gender          Gender         `json:"gender" orm:"size(25);default(X)"`
    }
    

    【讨论】:

      猜你喜欢
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 2011-09-11
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多