/**
  * @param AbstractModel $model
  *
  * @return bool
  */
 public function delete(AbstractModel $model)
 {
     list($query, $param, $type) = $this->queryBuilder->generateDeleteForModel($model);
     if ($this->modelCache->get($model)) {
         $this->modelCache->remove($model);
     }
     $stmt = $this->prepare($query, $param);
     if ($stmt->execute()) {
         return true;
     } else {
         $this->log(E_ERROR, print_r($stmt->errorInfo(), true));
         return false;
     }
 }