想把公共的字段( id,create_time,update_time...)拿出来单独放一个结构体,然后嵌套到结构体上最后映射到字段上。试了一下,发现它直接把嵌套的结构体名作为 text 类型的字段创建到了表上了。
1.xorm 支持嵌套结构体然后映射字段吗?
2.xorm 能不能通过字段属性定义字段的前后顺序?
type BaseModel struct {
Id int32 `json:"id" xorm:"int pk autoincr(1) comment('用户 ID')"`
CreateAt time.Time `json:"create_at" xorm:"create_at updated comment('创建时间')"`
UpdateAt time.Time `json:"update_at" xorm:"update_at updated comment('更新时间')"`
}
type User struct {
UserName string `json:"username" xorm:"varchar(32) notnull comment('用户名')"`
Password string `json:"password" xorm:"varchar(32) notnull comment('用户密码')"`
BaseModel
}
最后出现了在数据库上的表定义是:
CREATE TABLE `user` (
`user_name` varchar(32) NOT NULL COMMENT '用户名',
`password` varchar(32) NOT NULL COMMENT '用户密码',
`base_model` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
1.xorm 支持嵌套结构体然后映射字段吗?
2.xorm 能不能通过字段属性定义字段的前后顺序?
type BaseModel struct {
Id int32 `json:"id" xorm:"int pk autoincr(1) comment('用户 ID')"`
CreateAt time.Time `json:"create_at" xorm:"create_at updated comment('创建时间')"`
UpdateAt time.Time `json:"update_at" xorm:"update_at updated comment('更新时间')"`
}
type User struct {
UserName string `json:"username" xorm:"varchar(32) notnull comment('用户名')"`
Password string `json:"password" xorm:"varchar(32) notnull comment('用户密码')"`
BaseModel
}
最后出现了在数据库上的表定义是:
CREATE TABLE `user` (
`user_name` varchar(32) NOT NULL COMMENT '用户名',
`password` varchar(32) NOT NULL COMMENT '用户密码',
`base_model` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;