Limit condition should not be inherited by following queries

This commit is contained in:
Jinzhu 2014-10-28 17:18:11 +08:00
parent 48930b60eb
commit a29ac54e48
1 changed files with 8 additions and 2 deletions

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 { 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 inlineCondition(where...).callCallbacks(s.parent.callback.queries).db
} }
func (s *DB) Last(out interface{}, where ...interface{}) *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 inlineCondition(where...).callCallbacks(s.parent.callback.queries).db
} }