protected function buildCreateQuery($entity)
 {
     if ($this->entityInfo->usesGeneratedVpids) {
         unset($entity[$this->idColumnName]);
     }
     $columns = array_keys($entity);
     $columns = array_filter($columns, function ($column) {
         return !Strings::startsWith($column, 'vp_');
     });
     $columnsString = join(', ', array_map(function ($column) {
         return "`{$column}`";
     }, $columns));
     $query = "INSERT INTO {$this->prefixedTableName} ({$columnsString}) VALUES (";
     foreach ($columns as $column) {
         $query .= (is_numeric($entity[$column]) ? $entity[$column] : '"' . $this->database->_escape($entity[$column]) . '"') . ", ";
     }
     $query[strlen($query) - 2] = ' ';
     // strip the last comma
     $query .= ");";
     return $query;
 }