使用xorm反转数据库获取表结构后,查询失败

发布于 2022-09-11 20:35:09 字数 2796 浏览 19 评论 0

我是用了xorm工具反转数据库获取表结构。
得到结构体如下

type UserUser struct {
    Id                     int       `xorm:"not null pk autoincr unique(id, sys_group_id, branch_id) INT(11)"`
    Nickname               string    `xorm:"default '' comment('用户名') VARCHAR(200)"`
    Email                  string    `xorm:"default '' comment('email') index VARCHAR(64)"`
    EmailIsavalible        int       `xorm:"not null default 0 comment('email是否验证') TINYINT(4)"`
    Mobile                 string    `xorm:"default '' comment('手机号') index CHAR(16)"`
    MobileIsavalible       int       `xorm:"not null default 0 comment('mobile是否验证') TINYINT(4)"`
    Password               string    `xorm:"not null default '' comment('密码') CHAR(64)"`
    Isavalible             int       `xorm:"not null default 0 comment('是否可用') TINYINT(4)"`
    Customerkey            string    `xorm:"not null default '' comment('用户key,自动生成') CHAR(64)"`
    Createdate             time.Time `xorm:"not null default 'CURRENT_TIMESTAMP' index TIMESTAMP"`
    Userip                 string    `xorm:"not null default '' VARCHAR(50)"`
    Level                  int       `xorm:"default 0 comment('0学员 1员工') INT(11)"`
    SysGroupId             int       `xorm:"comment('部门编号') unique(id, sys_group_id, branch_id) INT(11)"`
    CompanyId              int       `xorm:"default 0 unique(id, sys_group_id, branch_id) INT(11)"`
    CreateUserid           int       `xorm:"INT(11)"`
    CreateFlag             string    `xorm:"VARCHAR(255)"`
    CreateGroup            int       `xorm:"INT(11)"`
    Mobliephonefaceurl     string    `xorm:"comment('app人脸图片地址') VARCHAR(128)"`
    Mobliephonefacestatus  string    `xorm:"default '0' comment('预留状态0初始化1已预留2申请修改3审批通过(审批通过后并且预留通过后改为1状态)') CHAR(1)"`
    Mobliephonevoiceid     string    `xorm:"comment('app声纹信息id') VARCHAR(50)"`
    Mobliephonevoicestatus string    `xorm:"default '0' comment('预留状态0初始化1已预留2申请修改3审批通过(审批通过后并且预留通过后改为1状态)') CHAR(1)"`
    Pcfaceurl              string    `xorm:"comment('pc人脸图片地址') VARCHAR(128)"`
    Pcfacestatus           string    `xorm:"default '0' comment('预留状态0初始化1已预留2申请修改3审批通过(审批通过后并且预留通过后改为1状态)') CHAR(1)"`
    Pcvoiceid              string    `xorm:"comment('pc声纹信息id') VARCHAR(64)"`
    Pcvoicestatus          string    `xorm:"default '0' comment('预留状态0初始化1已预留2申请修改3审批通过(审批通过后并且预留通过后改为1状态)') CHAR(1)"`
    Mobliephonefacebyte    string    `xorm:"TEXT"`
    Pcfacebyte             string    `xorm:"MEDIUMTEXT"`
}```


现在我进行数据库查询,语句如下
engine,err = xorm.NewEngine("mysql","name:pwd@tcp(ip:port)/xxxxx?charset=utf8")
users := make([]model.UserUser, 0)
err = engine.Alias("t").Where("t.mobile=?", "123").Find(&users)

执行时会报错

field Id tag unique(id, cannot match ) charactor


请问是哪里写的有问题?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我的痛♀有谁懂 2022-09-18 20:35:09

也许应该更正 unique 条件里的列名

-Id  int  `xorm:"not null pk autoincr unique(id, sys_group_id, branch_id) INT(11)"`
+Id  int  `xorm:"not null pk autoincr unique(Id, SysGroupId, BranchId) INT(11)"`
枯叶蝶 2022-09-18 20:35:09

我看你定义的表结构struct挺复杂的,如果使用ORM操作,可以参考GoFramegdb数据库ORM模块,同时支持通过map或者struct的形式来操作数据库:https://goframe.org/database/...

屋顶上的小猫咪 2022-09-18 20:35:09

把 tag 里面的 unique(id, sys_group_id, branch_id) 删除掉,这个生成可能是出 bug 了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文