This is my model in go
package models
import (
"time"
"gorm.io/gorm"
)
type VID uint
type CompanyNames struct {
Id VID `json:"id,omitempty"`
Name string `json:"name,omitempty"`
CreateDate time.Time `json:"CreateDate,omitempty"`
ModifyDate time.Time `json:"ModifyDate,omitempty"`
}
and this is my repo(that retrieve data from database):
func (m *Repo) Read(id models.VID) (*models.CompanyNames, error) {
var (
cn = &models.CompanyNames{}
)
err := m.db.Debug().Table("CompanyNames").First(cn, &id).Error
if err != nil {
return nil, err
}
return cn, err
}
On "http" I write this code with echo
func NewHttp(e *echo.Group, lg *Logic) {
g := e.Group("/companyname")
g.GET("", readAll)
g.GET("/:Id", read)
logic = lg
}
When I cal my ReadAll record rerieve data completly , it's mean I conected to database currectly,But whene I try get data by "id" got an error that :
mssql: Invalid column name 'id'.
Whet is my mistake another hand make id in my struct as a comment like this:>
type CompanyNames struct {
//Id VID `json:"id,omitempty"`
Name string `json:"name,omitempty"`
CreateDate time.Time `json:"CreateDate,omitempty"`
ModifyDate time.Time `json:"ModifyDate,omitempty"`
}
got new error that
mssql: Invalid column name 'name'. [2690.814ms] [rows:0] SELECT * FROM "CompanyNames" WHERE "CompanyNames"."name" = '1' ORDER BY "CompanyNames"."id" OFFSET 0 ROW FETCH NEXT 1 ROWS ONLY
Update:
func Cunnection() (*gorm.DB, error) { var ( err error db *gorm.DB ) dsn := "sqlserver://DbUser:mypass@111.111.111.111:1433?database=myDb"
db, err = gorm.Open(sqlserver.Open(dsn), &gorm.Config{})
if err != nil {
return nil, err
}
// err = db.Debug().AutoMigrate(&models.CompanyNameModel{})
// if err != nil {
// return nil, err
// }
return db, nil
}