code: private void createRelationshipForCollectionOfPrimitivesOrMap(AssociationKey associationKey, String collectionRole, String[] columnNames, StringBuilder queryBuilder) {
  		String relationshipType = collectionRole;
  		if ( isPartOfEmbedded( collectionRole ) ) {
  			queryBuilder.append( " MERGE (owner) " );
  			String[] pathToEmbedded = appendEmbeddedNodes( collectionRole, queryBuilder );
  			relationshipType = pathToEmbedded[pathToEmbedded.length - 1];
  			queryBuilder.append( " CREATE (e) -[r:" );
  		}
  		else {
  			queryBuilder.append( " CREATE (owner) -[r:" );
  		}
  		escapeIdentifier( queryBuilder, relationshipType );
  		queryBuilder.append( "]->(new:" );
  		queryBuilder.append( EMBEDDED );
  		queryBuilder.append( ":" );
  		escapeIdentifier( queryBuilder, associationKey.getTable() );
  		queryBuilder.append( " {" );
  		// THe name of the property is the same as the relationship type
  		escapeIdentifier( queryBuilder, relationshipType );
  		queryBuilder.append( ": {" );
  		queryBuilder.append( columnNames.length );
  		queryBuilder.append( "}" );
  		queryBuilder.append( "}" );
  		queryBuilder.append( ")" );
  		queryBuilder.append( " RETURN r" );
  	}
docs: /*
  Append query part related to the creation of a relationship for a collection of primitive or a Map like in the following examples:
  
  1) @ElemntCollection List<String> alternatives
  2) @MapKeyColumn(name = "addressType") Map<String, Address> addresses
  Query example for embedded collection of primitives or Map:
  
  MATCH (owner:ENTITY:table {id: {0}})
  MERGE (owner) -[:relType]-> (e0:EMBEDDED) -[:relType2]-> (e:EMBEDDED)
  CREATE (e) -[r:relType2]-> (new:EMBEDDED { property: {1}})
  RETURN r
  
  MATCH (owner:ENTITY:table {id: {0}})
  CREATE (owner) -[r:relType2]-> (target:EMBEDDED { property: {1}})
  RETURN r