public function reload($entity)
    {
        //Get meta and hash for entity
        $hash = $this->getHash($entity);
        $meta = $this->getMeta($entity);

        //Get the primary key
        $id = $meta->getPrimaryKey()->getValue($entity);

        if($meta instanceof NodeMeta)
        {
            //Everyman Node is cached, just load it
            if(isset($this->everymanNodeCache[$hash]))
            {
                return $this->loadNode($this->everymanNodeCache[$hash]);
            }

            //Not in the cache, but has an id, get the node and load it.
            elseif($id)
            {
                $node = $this->client->getNode($id);
                return $this->loadNode($node);
            }

            else
            {
                throw new Exception('Cannot reload an unsaved node.');
            }
        }

        else
        {
            if(isset($this->everymanRelationCache[$hash]))
            {
                return $this->loadRelation($this->everymanRelationCache[$hash]);
            }

            //Not in the cache, but has an id, get the node and load it.
            elseif($id)
            {
                $rel = $this->client->getRelationship($id);
                return $this->loadRelation($rel);
            }

            else
            {
                throw new Exception('Cannot reload an unsaved relation.');
            }
        }
    }