Documentation
¶
Index ¶
- func ExtractColumnFromBunTag(tag string) string
- func ExtractColumnFromGormTag(tag string) string
- func GetModelColumns(model any) []string
- func GetPrimaryKeyName(model any) string
- func GetPrimaryKeyValue(model any) interface{}
- func IsColumnWritable(model any, columnName string) bool
- func Len(v any) int
- type ModelFieldDetail
- type PrimaryKeyNameProvider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractColumnFromBunTag ¶
ExtractColumnFromBunTag extracts the column name from a bun tag Example: "id,pk" -> "id" Example: ",pk" -> "" (will fall back to json tag)
func ExtractColumnFromGormTag ¶
ExtractColumnFromGormTag extracts the column name from a gorm tag Example: "column:id;primaryKey" -> "id"
func GetModelColumns ¶
GetModelColumns extracts all column names from a model using reflection It checks bun tags first, then gorm tags, then json tags, and finally falls back to lowercase field names
func GetPrimaryKeyName ¶
GetPrimaryKeyName extracts the primary key column name from a model It first checks if the model implements PrimaryKeyNameProvider (GetIDName method) Falls back to reflection to find bun:",pk" tag, then gorm:"primaryKey" tag
func GetPrimaryKeyValue ¶ added in v0.0.31
func GetPrimaryKeyValue(model any) interface{}
GetPrimaryKeyValue extracts the primary key value from a model instance Returns the value of the primary key field
func IsColumnWritable ¶ added in v0.0.32
IsColumnWritable checks if a column can be written to in the database For bun: returns false if the field has "scanonly" tag For gorm: returns false if the field has "<-:false" or "->" (read-only) tag
Types ¶
type ModelFieldDetail ¶
type ModelFieldDetail struct {
Name string `json:"name"`
DataType string `json:"datatype"`
SQLName string `json:"sqlname"`
SQLDataType string `json:"sqldatatype"`
SQLKey string `json:"sqlkey"`
Nullable bool `json:"nullable"`
FieldValue reflect.Value `json:"-"`
}
func GetModelColumnDetail ¶
func GetModelColumnDetail(record reflect.Value) []ModelFieldDetail
GetModelColumnDetail - Get a list of columns in the SQL declaration of the model
type PrimaryKeyNameProvider ¶ added in v0.0.23
type PrimaryKeyNameProvider interface {
GetIDName() string
}