我想gorm在我的項目中使用多對一關系。我struct的是這樣的:type Book struct { ID uint Title string Subtitle string Chapters []Chapter `gorm:"foreignkey:BookID;association_foreignkey:ID"`} }// TableName is bookfunc (Book) TableName() string { return "book"}// Chapter of bookstype Chapter struct { ID uint BookID string Chapter string}我想要的是使用以下命令獲取一本書的章節(jié):book.chapters。我使用以下代碼來獲取書籍和章節(jié):var book models.Book db.First(&book, "id = ?", 4) fmt.Println(book.ID, book.Chapters) // returns []當我查詢 book_id = 4 的章節(jié)時,我得到 11 個結果: var chapters []models.Chapter db.Find(&chapters, "book_id = ? ", 4) fmt.Println("len(chapters) = ", len(chapters)) // len(chapters) =11當我設置 db.LogMode(true) 并查看代碼中發(fā)生的情況時,我發(fā)現查詢book僅查詢書籍而不將其加入chapters:SELECT * FROM "book" WHERE (id = 4) ORDER BY "book"."id" ASC LIMIT 1文檔中是否有我遺漏的內容?我應該如何使這本書結構 get 非空book.chapters。
1 回答

守著星空守著你
TA貢獻1799條經驗 獲得超8個贊
您的問題可能出在預加載中,
請嘗試以下操作:
var book models.Book
db.Preload("Chapters").First(&book, "id = ?", 4)
fmt.Println(book.ID, book.Chapters)
- 1 回答
- 0 關注
- 179 瀏覽
添加回答
舉報
0/150
提交
取消