String relPattern = relPattern(direction, type);
String statement1 = "MATCH (n)"+relPattern+"(m) WHERE id(n) = {id_n} "+targetLabelPredicate+" AND NOT id(m) IN {ids_m} DELETE r RETURN id(r) as id_r";
String statement2 = MATCH_NODE_QUERY("n") + " MATCH (m) WHERE id(m) IN {ids_m} MERGE (n)"+relPattern+"(m)" + _QUERY_RETURN_REL;
Map<String, Object> params = map("id_n", start.getId(), "ids_m", nodeIds(endNodes));
List<CypherTransaction.Result> results = runQueries(asList(
new Statement(statement1, params, row,false),
new Statement(statement2, params, row,false)));
Iterable<List<Object>> mergeResults = results.get(1).getRows();
return new IterableWrapper<Relationship,List<Object>>(mergeResults) {
@Override
protected Relationship underlyingObjectToObject(List<Object> row) {
return toRel(row);