Example #1
0
 /**
  * @param object $entity
  * @return int
  */
 public function delete($entity)
 {
     $this->assertIsInstance($entity, __METHOD__);
     $identifierKey = $this->settings->getIdentifier();
     $columns = $this->settings->getColumns();
     $identifier = $this->pickProperty($this->getPropertyReflection($columns[$identifierKey]), $entity);
     if (!$identifier) {
         throw new IdentifierNotFoundException();
     }
     $queryBuilder = $this->connection->createQueryBuilder($this->settings->getTable());
     $affectedRows = $this->query($queryBuilder->delete()->where($identifierKey, $identifier));
     $this->injectProperty($this->getPropertyReflection($columns[$identifierKey]), $entity, null);
     return $affectedRows;
 }