code: private void removePropertyForEmbedded(Node embeddedNode, String[] embeddedColumnSplit, int i) {
  		if ( i == embeddedColumnSplit.length - 1 ) {
  			// Property
  			String property = embeddedColumnSplit[embeddedColumnSplit.length - 1];
  			if ( embeddedNode.hasProperty( property ) ) {
  				embeddedNode.removeProperty( property );
  			}
  		}
  		else {
  			Iterator<Relationship> iterator = embeddedNode.getRelationships( Direction.OUTGOING, withName( embeddedColumnSplit[i] ) ).iterator();
  			if ( iterator.hasNext() ) {
  				removePropertyForEmbedded( iterator.next().getEndNode(), embeddedColumnSplit, i + 1 );
  			}
  		}
  		if ( !embeddedNode.getPropertyKeys().iterator().hasNext() ) {
  			// Node without properties
  			Iterator<Relationship> iterator = embeddedNode.getRelationships().iterator();
  			if ( iterator.hasNext() ) {
  				Relationship relationship = iterator.next();
  				if ( !iterator.hasNext() ) {
  					// Node with only one relationship and no properties,
  					// we can remove it:
  					// It means we have removed all the properties from the embedded node
  					// and it is NOT an intermediate node like
  					// (entity) --> (embedded1) --> (embedded2)
  					relationship.delete();
  					embeddedNode.delete();
  				}
  			}
  		}
  	}
docs: /*
  It will remove a property from an embedded node if it exists.
  After deleting the property, if the node does not have any more properties and relationships (except for an incoming one),
  it will delete the embedded node as well.