It is a bad practice to use pass DB field names as plain text to ORM methods. It is too easy to make a typo or forget a few places during refactoring.

In the example below, the "username" field name strings leads to potential errors:

db.Where(&User{Age: 20}).Order("username").First(&user)
db.Select("username, age").Find(&users)

Field names must at least be converted to constants. For example, the generator can add some extra information to the generated types:

db.Where(&User{Age: 20}).Order(User.username).First(&user)
db.Select(User.username).Find(&users)

fmt.Println(User.username) // username
fmt.Println(User.username.dbType) // varchar(255)
fmt.Println(User.username.dbNullable) // false
fmt.Println(User.username.type) // string

https://github.com/go-gorm/playground/pull/879

Comment From: github-actions[bot]

The issue has been automatically marked as stale as it missing playground pull request link, which is important to help others understand your issue effectively and make sure the issue hasn't been fixed on latest master, checkout https://github.com/go-gorm/playground for details. it will be closed in 30 days if no further activity occurs. if you are asking question, please use the Question template, most likely your question already answered https://github.com/go-gorm/gorm/issues or described in the document https://gorm.io ✨ Search Before Asking