ds261634878 2018-06-13 10:32
浏览 53
已采纳

为go-pg ORM中的多对多关系指定密钥

I have these 2 models with many-to-many relationship:

type Person struct {
    tableName    struct{}   `sql:"person"`
    UUID         string     `sql:"person_uuid,pk"`
    ContactDatas []ContactData `pg:",many2many:person_contact_data,joinFK:"`
}

type ContactData struct {
    tableName     struct{}   `sql:"contact_data"`
    UUID          string     `sql:"contact_data_uuid,pk"`
}

And model for person_contact_data table is:

type PersonContactData struct {
    tableName       struct{} `sql:"person_contact_data"`
    PersonUUID      string   `sql:"person_uuid"`
    ContactDataUUID string   `sql:"contact_data_uuid"`
}

If joinFK in ContactDatas struct tag is empty go-pg adds underscore under the hood, so generated SQL part looks like this: WHERE ("contact_data"."contact_data_uuid" = person_contact_data."_contact_data_uuid").

Is there a way to specify joining keys completely manual?

  • 写回答

1条回答 默认 最新

  • dougou8639 2018-06-13 14:28
    关注

    I was using version 5. In latest version this was fixed, now you can specify full joining keys:

    type Person struct {
        tableName    struct{}   `sql:"person"`
        UUID         string     `sql:"person_uuid,pk"`
        ContactDatas []ContactData `pg:",many2many:person_contact_data,fk:person_uuid,joinFK:contact_data_uuid"`
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线