[英]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.