我在GORM中定义了两个模型User和Address:
文件user.go
type User struct {
gorm.Model
Identity string `json:"identity"`
Password string `json:"password"`
Address Address
AddressID int
}
type Address struct {
gorm.Model
Street string `json:"street"`
StreetNumber string `json:"streetnumber"`
}
在main.go文件中,我启动数据库,自动迁移并想向数据库添加测试用户:database.InitDatabase()
database.DBConn.AutoMigrate(&user.User{})
database.DBConn.AutoMigrate(&user.Address{})
userRec := &user.User{ Identity: "John Wayne", Password: "mysecretpassword", Address: user.Address{Street: "Teststreet", StreetNumber: "1"}}
database.DBConn.Create(userRec)
创建用户以及地址,但是,该地址与用户无关,只是空的地址字段出现。我忘记了什么?
如果您的实体中有关联(使用嵌套模型),这是设置测试条目的正常方法吗?
最佳答案
尝试将“address_id”字段用作foreignKey
。
例如
type User struct {
gorm.Model
Identity string `json:"identity"`
Password string `json:"password"`
Address Address `gorm:"foreignKey:address_id;association_autoupdate:false"`
AddressID uint `json:"address_id"`
}
Online documentation也许会有所帮助。
关于go - 协会不使用测试条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64104174/