乐观锁Version

要使用乐观锁,需要使用version标记

  1. type User struct {
  2. Id int64
  3. Name string
  4. Version int `xorm:"version"`
  5. }

在Insert时,version标记的字段将会被设置为1,在Update时,Update的内容必须包含version原来的值。

  1. var user User
  2. engine.Id(1).Get(&user)
  3. // SELECT * FROM user WHERE id = ?
  4. engine.Id(1).Update(&user)
  5. // UPDATE user SET ..., version = version + 1 WHERE id = ? AND version = ?