find-one.tpl 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. func (m *default{{.upperStartCamelObject}}Model) FindOne(ctx context.Context, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) (*{{.upperStartCamelObject}}, error) {
  2. {{if .withCache}}{{.cacheKey}}
  3. var resp {{.upperStartCamelObject}}
  4. err := m.QueryRowCtx(ctx, &resp, {{.cacheKeyVariable}}, func(ctx context.Context, conn sqlx.SqlConn, v any) error {
  5. query := fmt.Sprintf("SELECT %s FROM %s WHERE {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}} LIMIT 1", {{.lowerStartCamelObject}}Rows, m.table)
  6. return conn.QueryRowCtx(ctx, v, query, {{.lowerStartCamelPrimaryKey}})
  7. })
  8. switch err {
  9. case nil:
  10. return &resp, nil
  11. case sqlc.ErrNotFound:
  12. return nil, ErrNotFound
  13. default:
  14. return nil, err
  15. }{{else}}query := fmt.Sprintf("SELECT %s FROM %s WHERE {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}} LIMIT 1", {{.lowerStartCamelObject}}Rows, m.table)
  16. var resp {{.upperStartCamelObject}}
  17. err := m.conn.QueryRowCtx(ctx, &resp, query, {{.lowerStartCamelPrimaryKey}})
  18. switch err {
  19. case nil:
  20. return &resp, nil
  21. case sqlx.ErrNotFound:
  22. return nil, ErrNotFound
  23. default:
  24. return nil, err
  25. }{{end}}
  26. }
  27. func (m *default{{.upperStartCamelObject}}Model) FindOneWithTx(ctx context.Context, session sqlx.Session, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) (*{{.upperStartCamelObject}}, error) {
  28. var resp {{.upperStartCamelObject}}
  29. query := fmt.Sprintf("SELECT %s FROM %s WHERE {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}} LIMIT 1", {{.lowerStartCamelObject}}Rows, m.table)
  30. err := session.QueryRowCtx(ctx, &resp, query, {{.lowerStartCamelPrimaryKey}})
  31. switch err {
  32. case nil:
  33. return &resp, nil
  34. case sqlx.ErrNotFound:
  35. return nil, ErrNotFound
  36. default:
  37. return nil, err
  38. }
  39. }