Gorm没有创建条目

时间:2018-01-20 14:27:29

标签: go go-gorm

我是新手,我有点困惑,为什么以下:

acccountTypeModelWallet := accounttypes.AccountType{Type: "wallet", Name: "Wallet"}
if db.First(&acccountTypeModelWallet).RecordNotFound() {
    fmt.Println("Account Type `Wallet` not found. Creating..")
    err := db.Create(&acccountTypeModelWallet).Error
    if err != nil {
        return false, err
    }
}

acccountTypeModelBankAccount := accounttypes.AccountType{Type: "bankaccount", Name: "Bank Account"}
if db.First(&acccountTypeModelBankAccount).RecordNotFound() {
    fmt.Println("Account Type `Bank Account` not found. Creating..")
    err := db.Create(&acccountTypeModelBankAccount).Error
    if err != nil {
        fmt.Println(err)
        return false, err
    }
}

acccountTypeModelExchange := accounttypes.AccountType{Type: "exchange", Name: "Exchange Account"}
if db.First(&acccountTypeModelExchange).RecordNotFound() {
    fmt.Println("Account Type `Exchange Account` not found. Creating..")
    err := db.Create(&acccountTypeModelExchange).Error
    if err != nil {
        return false, err
    }
}

只将“电子钱包”插入数据库,而不是“银行帐户”和“交换”?执行时不存在任何条目,因此应创建所有条目。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

退出查询后我发现错误了。它无条件地查询所有条目。添加.Where()之后就可以了。

if db.Where(&acccountTypeModelExchange).First(&accounttypes.AccountType{}).RecordNotFound()