public function persist($document)
{
$class = $this->dm->getClassMetadata(get_class($document));
if ($class->isMappedSuperclass || $class->isQueryResultDocument) {
throw MongoDBException::cannotPersistMappedSuperclass($class->name);
}
$visited = array();
$this->doPersist($document, $visited);
}