/** * Method used to save entity into it's own database * * @param Entity $entity * * @return bool|int|\PDOStatement * @throws QueryException */ public function save(Entity $entity) { $query = null; if (intval($entity->getId()) > 0 && !$entity->isForceInsert()) { $entity->setDateUpdated(date("Y-m-d H:i:s")); $dto = $entity->getDto(); unset($dto['id']); // No need to "update" ID field $query = $this->queryBuilder->update($this->getTableName(), $dto, $entity->getId()); } else { $entity->setDateCreated(date("Y-m-d H:i:s")); $dto = $entity->getDto(); $query = $this->queryBuilder->insertInto($this->getTableName(), $dto); } try { $result = $query->execute(); } catch (\PDOException $ex) { throw new QueryException($ex, $query); } return $result; }