/**
  * {@inheritDoc}
  */
 public function delete($id)
 {
     // cascade delete operation for registered relationships
     foreach ($this->relationshipCascade as $alias => $childRepo) {
         /** @var RepositoryInterface $childRepo */
         $relationship = $this->entityMetadata->getRelationship($alias);
         // skip if this relationship is many to many
         if ($relationship[EntityMetadata::METADATA_RELATIONSHIP_TYPE] == EntityMetadata::RELATIONSHIP_TYPE_MANY_TO_MANY) {
             continue;
         }
         if (empty($relationship[EntityMetadata::METADATA_RELATIONSHIP_THEIR_FIELD])) {
             continue;
         }
         // build and execute a delete query for the relationship
         $childMetadata = $this->metadataProvider->getEntityMetadata($relationship[EntityMetadata::METADATA_ENTITY]);
         $childField = $relationship[EntityMetadata::METADATA_RELATIONSHIP_THEIR_FIELD];
         $delete = $this->getDeleteQuery($id, $childMetadata, $childField);
         $this->doQuery($delete, ["output" => "raw"]);
     }
     $query = $this->getDeleteQuery($id);
     return $this->doQuery($query, ["output" => "raw"]);
 }