Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Paolo Galeone 2014-10-29 13:46:41 +01:00
commit 4c8e6a095a
2 changed files with 10 additions and 4 deletions

View File

@ -164,7 +164,7 @@ db.NewRecord(user) // => true
db.Create(&user)
// will ruturn false after `user` created
// will return false after `user` created
db.NewRecord(user) // => false
// You could use `Save` to create record also if its primary key is null
@ -691,7 +691,7 @@ db.Exec("UPDATE orders SET shipped_at=? WHERE id IN (?)", time.Now, []int64{11,2
## Row & Rows
You are even possible to get query result as `*sql.Row` or `*sql.Rows`
It is even possible to get query result as `*sql.Row` or `*sql.Rows`
```go
row := db.Table("users").Where("name = ?", "jinzhu").Select("name, age").Row() // (*sql.Row)

10
main.go
View File

@ -166,12 +166,18 @@ func (s *DB) Assign(attrs ...interface{}) *DB {
}
func (s *DB) First(out interface{}, where ...interface{}) *DB {
return s.clone().Limit(1).NewScope(out).InstanceSet("gorm:order_by_primary_key", "ASC").
newScope := s.clone().NewScope(out)
newScope.Search = newScope.Search.clone()
newScope.Search.limit(1)
return newScope.InstanceSet("gorm:order_by_primary_key", "ASC").
inlineCondition(where...).callCallbacks(s.parent.callback.queries).db
}
func (s *DB) Last(out interface{}, where ...interface{}) *DB {
return s.clone().Limit(1).NewScope(out).InstanceSet("gorm:order_by_primary_key", "DESC").
newScope := s.clone().NewScope(out)
newScope.Search = newScope.Search.clone()
newScope.Search.limit(1)
return newScope.InstanceSet("gorm:order_by_primary_key", "DESC").
inlineCondition(where...).callCallbacks(s.parent.callback.queries).db
}