GORM从已经存在的表返回空字符串



我有一个表在Postgres数据库(artwork_migrate_era)

我正在使用GORM。我发现,为了让我的模型与一个已经存在的表一起工作,我需要像这样使用TableName()方法:

type Era struct {
id            int       `json:"id"`
era_name      string    `json:"era_name"`
last_modified time.Time `json:"last_modified"`
}
// allows to use gorm model with already-existing table in db: https://stackoverflow.com/questions/66318666/golang-gorm-how-to-create-a-model-for-an-existing-table
func (Era) TableName() string {
return "artwork_migrate_era"
}

我也使用GIN来发出请求:

func main() {
dsn := "...db_credentials..."
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect to db")
}
db.AutoMigrate(&Era{})
router := gin.Default()
router.GET("/era/:id", func(c *gin.Context) {
id := c.Param("id")
var era Era
db.Where("id = ?", id).Find(&era)
c.JSON(http.StatusOK, gin.H{
"Era": era.era_name,
})
})
router.Run("localhost:8080")
}

当我发出以下请求时:curl localhost:8080/era/4

我得到了以下响应:{"Era":""}

我是不是错过了什么明显的东西?

db.Where("id = ?", id).Find(&era)将无法映射数据到您的结构导出您的结构的所有成员通过使首字母大写

相关内容

  • 没有找到相关文章

最新更新