我有一个psql数据库,我正在使用gorm库以及pq驱动程序,因为你看到相关产品存在多对多的关系,但这会抛出错误pq: column "product_id" specified more than once
设置别名的方法还是以错误的方式解决这个问题?
type Product struct {
Id int64 `json:"_id"`
Price float32 `json:"price"`
Name string `sql:"size:255" json:"name"`
Description string `json:"description"`
Material string `json:"material"`
Color string `json:"color"`
ColorId int64 `json:"colorId"`
Categories []Category `gorm:"many2many:product_categories;" json:"categories"`
Images []Image `json:"images"`
Tags []Tag `gorm:"many2many:product_tags;" json:"tags"`
Main bool `json:"main"`
Available bool `json:"available"`
Slug string `json:"slug"`
CreatedAt time.Time `json:"createdAt"`
Related []Product `gorm:"many2many:related_products;" json:"related"`
}
答案 0 :(得分:1)
我找到了自我引用many2many关系的解决方案。 :D
type User struct {
Id int64
Related []Product `gorm:"foreignkey:product_id;associationforeignkey:related_product_id;many2many:related_products;" json:"related"`
}
答案 1 :(得分:0)
有点老帖但幸运的是gorm最近添加了这个功能(参考:here)。
在你的情况下应该是这样的:
type Product struct {
Id int64 `json:"_id"`
.
.
.
Related []Product `gorm:"many2many:related_products;association_jointable_foreignkey:related_id"`
}