sql_entity_tx.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package main
  2. import (
  3. "git.sxidc.com/go-tools/utils/strutils"
  4. "git.sxidc.com/service-supports/ds-sdk/sdk"
  5. "git.sxidc.com/service-supports/ds-sdk/sql"
  6. "time"
  7. )
  8. func main() {
  9. err := sdk.InitInstance(token, address, httpPort, grpcPort, namespace, dataSource)
  10. if err != nil {
  11. panic(err)
  12. }
  13. defer func() {
  14. err := sdk.DestroyInstance()
  15. if err != nil {
  16. panic(err)
  17. }
  18. }()
  19. now := time.Now()
  20. graduatedTime := now.AddDate(3, 0, 0)
  21. classID := strutils.SimpleUUID()
  22. studentIDs := []string{strutils.SimpleUUID(), strutils.SimpleUUID(), strutils.SimpleUUID()}
  23. class := &Class{
  24. IDField: IDField{ID: classID},
  25. Name: "001",
  26. StudentNum: 10,
  27. GraduatedTime: &graduatedTime,
  28. StudentIDs: studentIDs,
  29. }
  30. newClass := &Class{
  31. IDField: IDField{ID: classID},
  32. Name: "",
  33. StudentNum: 30,
  34. GraduatedTime: &graduatedTime,
  35. StudentIDs: studentIDs,
  36. }
  37. err = sdk.GetInstance().Transaction(func(tx *sdk.Transaction) error {
  38. err = sql.InsertEntity(tx, tableName, class)
  39. if err != nil {
  40. panic(err)
  41. }
  42. err = sql.UpdateEntity(tx, tableName, newClass)
  43. if err != nil {
  44. panic(err)
  45. }
  46. err = sql.DeleteEntity(tx, tableName, &Class{IDField: IDField{ID: classID}})
  47. if err != nil {
  48. panic(err)
  49. }
  50. return nil
  51. })
  52. if err != nil {
  53. panic(err)
  54. }
  55. }