go - 协会不使用测试条目

标签 go associations go-gorm

我在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/

相关文章:

sql-server - 使用GORM从GOlang中的SQL处理多个结果集

mysql - Go-Gorm的关联模式如何获取RowsAffected

go - 从 golang、docker 和 alpine 启动 SSH 代理

json - 你如何在 Go 中解码为正确的顺序?

php - 将链接数据从一个表中的一行提取到另一表中的多行

uml - 具有泛化和专门化的聚合顺序

go - 使用独立于底层操作系统的反斜杠分隔符与标准库连接路径

使用 httptest 单元测试 http 请求重试

ruby-on-rails - Rails 嵌套属性 : require at least two records

sql-server - 无法使用 GORM : reflect: call of reflect. Value.Interface on zero Value 将记录批量插入到 MSSQL DB 中