如何创建自引用关联字段

时间:2017-10-21 09:59:45

标签: go orm

我尝试使用gorm创建自引用字段:

type Post struct {
  ID        uint      `gorm:"primary_key" json:"id"`
  Post      *Post     `json:"post" xml:"post" sql:"default:null"`
}
db.AutoMigrate(&Post{})

未在DB中创建列post_id。尝试了几个struct字段名称,没有运气。

处理自我约束关联的正确方法是什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

Gorm魔法不在关联(外键)部分,而是在数据部分。

Gorm将根据PostID执行sql连接以检索相关的Post行。然后,它会将该数据存储在Post中的嵌套Post字段中。

如果您只提供PostID而没有type Post struct { ID uint `gorm:"primary_key" json:"id"` Post *Post `json:"post" xml:"post" sql:"default:null"` PostID uint `json:"post_id" xml:"post_id"` } db.AutoMigrate(&Post{}) Gorm将无所事事,因为没有外键可供使用。

Traceback (most recent call last):
  File "C:\Users\john\Desktop\python\E&D.py", line 10, in <module>
    pr = RSA.importKey(open('mykey.pem', 'r'))
  File "C:\Python27\lib\site-packages\Crypto\PublicKey\RSA.py", line 678, in importKey
    if bord(externKey[0])==0x30:
IndexError: string index out of range