def reload(other_query = Undefined)
      query = self.query
      query = other_query.equal?(Undefined) ? query.dup : query.merge(other_query)

      # make sure the Identity Map contains all the existing resources
      identity_map = repository.identity_map(model)

      loaded_entries.each do |resource|
        identity_map[resource.key] = resource
      end

      # sort fields based on declared order, for more consistent reload queries
      properties = self.properties
      fields     = properties & (query.fields | model_key | [ properties.discriminator ].compact)

      # replace the list of resources
      replace(all(query.update(:fields => fields, :reload => true)))
    end
def reload(other_query = Undefined)
      query = self.query
      query = other_query.equal?(Undefined) ? query.dup : query.merge(other_query)

      # make sure the Identity Map contains all the existing resources
      identity_map = repository.identity_map(model)

      loaded_entries.each do |resource|
        identity_map[resource.key] = resource
      end

      # sort fields based on declared order, for more consistent reload queries
      properties = self.properties
      fields     = properties & (query.fields | model_key | [ properties.discriminator ].compact)

      # replace the list of resources
      replace(all(query.update(:fields => fields, :reload => true)))
    end
Reloads the Collection from the repository

 If +query+ is provided, updates this Collection's query with its conditions

   cars_from_91 = Cars.all(:year_manufactured => 1991)
   cars_from_91.first.year_manufactured = 2001   # note: not saved
   cars_from_91.reload
   cars_from_91.first.year                       #=> 1991

 @param [Query, Hash] query (optional)
   further restrict results with query

 @return [self]

 @api public