/** * Revert a Entity identified by specific $log * @param Log $log * @param bool $deleteHistory if true, the revert will also delete all log entries since the reverted one * @param bool $logRevert if logRevert is true, the revert will be logged * @return object * @throws \Doctrine\ORM\ORMException * @throws \Doctrine\ORM\OptimisticLockException * @throws \Doctrine\ORM\TransactionRequiredException * @throws \Exception */ public function revertTo(Log $log, $deleteHistory = true, $logRevert = false) { $softconfig = $this->getSoftDeletableListener()->getConfiguration($this->_em, $log->getObjectClass()); if (sizeof($softconfig) == 0) { throw new \Exception('use softdeleteable Filter'); } $this->_em->getFilters()->disable('softdeleteable'); $entity = $this->_em->find($log->getObjectClass(), $log->getObjectId()); $this->_em->getFilters()->enable('softdeleteable'); $wrapped = new EntityWrapper($entity, $this->_em); $this->revertBy($log->getObjectId(), $log->getObjectClass(), $log->getVersion(), $wrapped, $softconfig['fieldName'], $deleteHistory, $logRevert); return $wrapped->getObject(); }