code: private static String initCreateRelationshipQuery(EntityKeyMetadata ownerEntityKeyMetadata, AssociationKeyMetadata associationKeyMetadata) {
  		EntityKeyMetadata targetEntityKeyMetadata = associationKeyMetadata.getAssociatedEntityKeyMetadata().getEntityKeyMetadata();
  		int offset = 0;
  		StringBuilder queryBuilder = new StringBuilder( "MATCH " );
  		appendEntityNode( "n", ownerEntityKeyMetadata, queryBuilder );
  		queryBuilder.append( ", " );
  		offset += ownerEntityKeyMetadata.getColumnNames().length;
  		appendEntityNode( "t", targetEntityKeyMetadata, queryBuilder, offset );
  		queryBuilder.append( " MERGE (n)" );
  		queryBuilder.append( " -[r" );
  		queryBuilder.append( ":" );
  		appendRelationshipType( queryBuilder, associationKeyMetadata );
  		offset = ownerEntityKeyMetadata.getColumnNames().length;
  		if ( associationKeyMetadata.getRowKeyIndexColumnNames().length > 0 ) {
  			offset += targetEntityKeyMetadata.getColumnNames().length;
  			appendProperties( queryBuilder, associationKeyMetadata.getRowKeyIndexColumnNames(), offset );
  		}
  		queryBuilder.append( "]-> (t)" );
  		queryBuilder.append( " RETURN r" );
  		return queryBuilder.toString();
  	}
docs: /*
  MATCH (o:ENTITY:table1 {id: {0}}), (t:ENTITY:table2 {id: {1}})
  MERGE (o) -[r:role {props}]-> (t)
  RETURN r