find.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package template
  2. // 通过id查询
  3. var FindOne = `
  4. func (m *{{.upperStartCamelObject}}Model) FindOne({{.lowerStartCamelPrimaryKey}} {{.dataType}}) (*{{.upperStartCamelObject}}, error) {
  5. {{if .withCache}}{{.cacheKey}}
  6. var resp {{.upperStartCamelObject}}
  7. err := m.QueryRow(&resp, {{.cacheKeyVariable}}, func(conn sqlx.SqlConn, v interface{}) error {
  8. query := ` + "`" + `select ` + "`" + ` + {{.lowerStartCamelObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.originalPrimaryKey}} = ? limit 1` + "`" + `
  9. return conn.QueryRow(v, query, {{.lowerStartCamelPrimaryKey}})
  10. })
  11. switch err {
  12. case nil:
  13. return &resp, nil
  14. case sqlc.ErrNotFound:
  15. return nil, ErrNotFound
  16. default:
  17. return nil, err
  18. }{{else}}query := ` + "`" + `select ` + "`" + ` + {{.lowerStartCamelObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.originalPrimaryKey}} = ? limit 1` + "`" + `
  19. var resp {{.upperStartCamelObject}}
  20. err := m.conn.QueryRow(&resp, query, {{.lowerStartCamelPrimaryKey}})
  21. switch err {
  22. case nil:
  23. return &resp, nil
  24. case sqlc.ErrNotFound:
  25. return nil, ErrNotFound
  26. default:
  27. return nil, err
  28. }{{end}}
  29. }
  30. `
  31. // 通过指定字段查询
  32. var FindOneByField = `
  33. func (m *{{.upperStartCamelObject}}Model) FindOneBy{{.upperField}}({{.in}}) (*{{.upperStartCamelObject}}, error) {
  34. {{if .withCache}}{{.cacheKey}}
  35. var resp {{.upperStartCamelObject}}
  36. err := m.QueryRowIndex(&resp, {{.cacheKeyVariable}}, func(primary interface{}) string {
  37. return fmt.Sprintf("%s%v", {{.primaryKeyLeft}}, primary)
  38. }, func(conn sqlx.SqlConn, v interface{}) (i interface{}, e error) {
  39. query := ` + "`" + `select ` + "`" + ` + {{.lowerStartCamelObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.originalField}} = ? limit 1` + "`" + `
  40. if err := conn.QueryRow(&resp, query, {{.lowerStartCamelField}}); err != nil {
  41. return nil, err
  42. }
  43. return resp.{{.upperStartCamelPrimaryKey}}, nil
  44. }, func(conn sqlx.SqlConn, v, primary interface{}) error {
  45. query := ` + "`" + `select ` + "`" + ` + {{.lowerStartCamelObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.originalPrimaryField}} = ? limit 1` + "`" + `
  46. return conn.QueryRow(v, query, primary)
  47. })
  48. switch err {
  49. case nil:
  50. return &resp, nil
  51. case sqlc.ErrNotFound:
  52. return nil, ErrNotFound
  53. default:
  54. return nil, err
  55. }
  56. }{{else}}var resp {{.upperStartCamelObject}}
  57. query := ` + "`" + `select ` + "`" + ` + {{.lowerStartCamelObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.originalField}} limit 1` + "`" + `
  58. err := m.conn.QueryRow(&resp, query, {{.lowerStartCamelField}})
  59. switch err {
  60. case nil:
  61. return &resp, nil
  62. case sqlc.ErrNotFound:
  63. return nil, ErrNotFound
  64. default:
  65. return nil, err
  66. }
  67. }{{end}}
  68. `