如何返回使用Gorm的Create()创建的记录?

时间:2018-12-08 16:32:08

标签: go go-gorm

如何返回用Gorm的Create()创建的记录?

例如,我在下面的代码中使用Create()创建一个用户:

package main

import (
    "apiserver/model"
    "fmt"

    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/postgres"
)


func main() {
    db, err := gorm.Open("postgres", "host=127.0.0.1 port=5432 user=postgres dbname=exampledb password=123 sslmode=disable")
    if err != nil {
        fmt.Println(err)
    }
    defer db.Close()   

    db.AutoMigrate(&model.User{})
    user := User{Name: "Jack", Age: 18}
    db.Create(&user)
}

我想返回此user记录,该怎么做?

更新:

我需要使用Where()吗?像这样:

db.Where("name = ?", "Jack").First(&user) 

1 个答案:

答案 0 :(得分:2)

创建后,根据official docsDefault value section,您将在对象内部更新所有属性。因此,使用传递给Create

的引用的对象就足够了
user := User{Name: "Jack", Age: 18}
db.Create(&user)
fmt.Println(user.Name, user.Age)