package main import ( "fmt" "git.sxidc.com/service-supports/ds-sdk/sql" ) func main() { printSqlMapping(&Class{}) } func printSqlMapping(entity any) { sqlMapping, err := sql.ParseSqlMappingTag(entity) if err != nil { panic(err) } for fieldName, element := range sqlMapping.MappingElement { fmt.Println("---------------------------------------") fmt.Println("Field Name: " + fieldName) switch sqlColumn := element.(type) { case *sql.MappingStruct: fmt.Println("Type: Struct") printSqlMapping(sqlColumn.FieldValueElem.Interface()) case *sql.MappingColumn: fmt.Println("Type: Field") fmt.Printf("Name: %s\n", sqlColumn.Name) fmt.Printf("IsKey: %v\n", sqlColumn.IsKey) fmt.Printf("CanUpdate: %v\n", sqlColumn.CanUpdate) fmt.Printf("CanUpdateClear: %v\n", sqlColumn.CanUpdateClear) fmt.Printf("AESKey: %v\n", sqlColumn.AESKey) fmt.Printf("JoinWith: %v\n", sqlColumn.JoinWith) default: fmt.Println("类型错误") } fmt.Println("---------------------------------------") } }