1
type User struct {
Id int64 `db:"id" json:"id"`
Name string `db:"name" json:"name"`
DateCreate int64 `db:"date_create"`
DateUpdate int64 `db:"date_update"`
}
func (u *User) PreInsert(s gorp.SqlExecutor) error {
u.DateCreate = time.Now().UnixNano()
u.DateUpdate = u.DateCreate
return nil
}
func (u *User) PreUpdate(s gorp.SqlExecutor) error {
u.DateUpdate = time.Now().UnixNano()
return nil
}
我執行了INSERT。
user := model.User{
Name: "John",
}
err := dbMap.Insert(&user)
INSERT的結果。沒問題
1,John,1444918337049394761,1444918337049394761
繼續,我執行UPDATE。 UPDATE的
user := model.User{
Id: 1,
Name: "John",
}
_, err := dbMap.Update(&user)
結果
1,John,0,1444918337049394900
列DateCreate更新。
當然,我的期望值是
1,John,1444918337049394761,1444918337049394900
嗨@HectorJ,謝謝你的回覆。 我明白了,我選擇在UPDATE上使用Exec()方法。 如果PreUpdate能夠排除特定列,非常有用。 –