data_mapping.go 637 B

123456789101112131415161718192021222324252627282930313233343536
  1. package data_mapping
  2. import (
  3. "errors"
  4. "reflect"
  5. )
  6. type DataMapping struct {
  7. Name string
  8. SqlMapping *SqlMapping
  9. }
  10. func ParseDataMapping(e any) (*DataMapping, error) {
  11. if e == nil {
  12. return nil, errors.New("没有传递实体")
  13. }
  14. entityType := reflect.TypeOf(e)
  15. if entityType.Kind() == reflect.Ptr {
  16. entityType = entityType.Elem()
  17. }
  18. if entityType.Kind() != reflect.Struct {
  19. return nil, errors.New("传递的不是实体结构")
  20. }
  21. sqlMapping, err := parseSqlMapping(entityType)
  22. if err != nil {
  23. return nil, err
  24. }
  25. return &DataMapping{
  26. Name: entityType.String(),
  27. SqlMapping: sqlMapping,
  28. }, nil
  29. }