xorm 的结构体字段映射 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
zanelee
V2EX    Go 编程语言

xorm 的结构体字段映射

  •  
  •   zanelee 2023-06-14 16:43:45 +08:00 1366 次点击
    这是一个创建于 878 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想把公共的字段( 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;
    2 条回复    2023-06-15 01:35:59 +08:00
    zanelee
        1
    zanelee  
    OP
       2023-06-14 16:49:33 +08:00
    第一个问题又看了看文档已经解决了,是要在对应的嵌套的结构体后面加 extends 的属性定义
    type User struct {
    UserName string `json:"username" xorm:"varchar(32) notnull comment('用户名')"`
    Password string `json:"password" xorm:"varchar(32) notnull comment('用户密码')"`
    BaseModel `xorm:"extends"`
    }
    定义字段的顺序还是没发现怎么搞,比如我想要 id 字段在数据库表结构的字段是第 1 列,create_at 和 update_at 在最后 2 列
    hzzhzzdogee
        2
    hzzhzzdogee  
       2023-06-15 01:35:59 +08:00
    关于问题 2, 我印象中表字段顺序就是按照 struct 字段顺序排列的吧?

    你是想用 tag 手动标注字段顺序, 似乎没有这个功能.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     873 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 20:29 PVG 04:29 LAX 12:29 JFK 15:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86