Раньше я использовал Java, поэтому тип некоторых столбцов в таблице базы данных — bit(1)
. Но теперь я хочу использовать beego для перестроения моего проекта, и я не хочу изменять свою таблицу базы данных (многое нужно сделать). Я использую beego's orm в своем проекте. Итак, какой тип Go мне следует использовать?
Такая таблица и удаленный столбец имеют вопрос:
+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| id | varchar(255) | NO | PRI | NULL | |
| created_time | datetime | YES | | NULL | |
| deleted | bit(1) | NO | | NULL | |
| updated_time | datetime | YES | | NULL | |
| icon_class | varchar(255) | YES | | NULL | |
| mark | varchar(255) | YES | | NULL | |
| name | varchar(255) | YES | | NULL | |
| parent | varchar(255) | YES | | NULL | |
+--------------+--------------+------+-----+---------+-------+
перейти к такой структуре:
type BaseModel struct {
Id string `orm:"pk";form:"id"`
CreatedTime time.Time `orm:"auto_now_add;type(datetime)";form:"-"`
UpdatedTime time.Time `orm:"auto_now;type(datetime)";form:"-"`
Deleted bool `form:"-"`
}
Когда я использую bool в своем коде, возникает такая ошибка:
`[0]` convert to `*orm.BooleanField` failed, field: shareall-go/models.Category.BaseModel.Deleted err: strconv.ParseBool: parsing "\x00": invalid syntax
BOOL
в MySQL, если ваш тип соответствует логическому значению (судя по имени). Надеемся, что после того, как вы внесете это изменение, ответ на ваш фактический вопрос будет очевиден. - person Flimzy   schedule 28.11.2017