需要手动添加自引用外键。此时应首先对表进行初始化,然后使用AddForeignKey方法添加外键约束。
示例:
type Category struct {
ID uint
Name string
ParentID uint
Parent *Category gorm:"foreignkey:ParentID"
}
db.AutoMigrate(&Category{})
db.Model(&Category{}).AddForeignKey("parent_id", "categories(id)", "RESTRICT", "RESTRICT")