code: private static String initRemoveEntityQuery(EntityKeyMetadata entityKeyMetadata) {
  		StringBuilder queryBuilder = new StringBuilder( "MATCH " );
  		appendEntityNode( "n", entityKeyMetadata, queryBuilder );
  		queryBuilder.append( " OPTIONAL MATCH (n)-[r]->(e:EMBEDDED), path=(e)-[*0..]->(:EMBEDDED) " );
  		queryBuilder.append( " DELETE r " );
  		queryBuilder.append( " FOREACH (er IN relationships(path) | DELETE er) " );
  		queryBuilder.append( " FOREACH (en IN nodes(path) | DELETE en) " );
  		queryBuilder.append( " WITH n " );
  		queryBuilder.append( " OPTIONAL MATCH (n)-[r]-() " );
  		queryBuilder.append( " DELETE r,n " );
  		return queryBuilder.toString();
  	}
docs: /*
  Example: MATCH (n:ENTITY:table {id: {0}}) OPTIONAL MATCH (n) - [r] - () DELETE n, r