簡體   English   中英

為go-pg ORM中的多對多關系指定密鑰

[英]Specify key for many-to-many relationship in go-pg ORM

我有這兩個具有多對多關系的模型:

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"`
}

person_contact_data表的模型為:

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

如果ContactDatas struct標記中的joinFK為空,則go-pg在joinFK添加下划線,因此生成的SQL部分如下所示: WHERE ("contact_data"."contact_data_uuid" = person_contact_data."_contact_data_uuid")

有沒有辦法完全手動指定連接鍵?

我使用的是版本5。在最新版本中,此問題已修復,現在您可以指定完整的連接鍵:

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"`
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM