public function delete()
 {
     $transaction = $this->beginTransaction();
     try {
         $idTemplate = $this->getId();
         $idEntity = $this->getIdEntity();
         // remove entry
         $entry = new Entry();
         $entry->deleteEntry($this->getEntry());
         // remove related FEs
         //Base::deleteEntity2Relation($idEntity, 'rel_elementof');
         $fe = new FrameElement();
         $fes = $this->listFEforDeletion()->asQuery()->getResult();
         foreach ($fes as $row) {
             $fe->getById($row['idFrameElement']);
             $fe->delete();
         }
         // remove this template
         parent::delete();
         // remove entity
         $entity = new Entity($idEntity);
         $entity->delete();
         $transaction->commit();
     } catch (\Exception $e) {
         $transaction->rollback();
         throw new \Exception($e->getMessage());
     }
 }