Skip to content

Commit 924b4a0

Browse files
committed
DATAGRAPH-1433 - Fix relationship collecting for path queries.
1 parent c72ecc7 commit 924b4a0

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/main/java/org/springframework/data/neo4j/core/mapping/CypherGenerator.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -514,28 +514,28 @@ private String[] collectAllRelationshipTypes(Collection<RelationshipDescription>
514514

515515
for (RelationshipDescription relationshipDescription : relationshipDescriptions) {
516516
String relationshipType = relationshipDescription.getType();
517-
if (relationshipTypes.contains(relationshipType)) {
518-
continue;
519-
}
520517
if (relationshipDescription.isDynamic()) {
521518
relationshipTypes.clear();
522519
continue;
523520
}
524521
relationshipTypes.add(relationshipType);
525-
collectAllRelationshipTypes(relationshipDescription.getTarget(), relationshipTypes);
522+
collectAllRelationshipTypes(relationshipDescription.getTarget(), relationshipTypes, new HashSet<>(relationshipDescriptions));
526523
}
527524
return relationshipTypes.toArray(new String[0]);
528525
}
529526

530-
private void collectAllRelationshipTypes(NodeDescription<?> nodeDescription, Set<String> processedRelationshipTypes) {
527+
private void collectAllRelationshipTypes(NodeDescription<?> nodeDescription, Set<String> relationshipTypes,
528+
Collection<RelationshipDescription> processedRelationshipDescriptions) {
531529

532530
for (RelationshipDescription relationshipDescription : nodeDescription.getRelationships()) {
533531
String relationshipType = relationshipDescription.getType();
534-
if (processedRelationshipTypes.contains(relationshipType)) {
532+
if (processedRelationshipDescriptions.contains(relationshipDescription)) {
535533
continue;
536534
}
537-
processedRelationshipTypes.add(relationshipType);
538-
collectAllRelationshipTypes(relationshipDescription.getTarget(), processedRelationshipTypes);
535+
relationshipTypes.add(relationshipType);
536+
processedRelationshipDescriptions.add(relationshipDescription);
537+
collectAllRelationshipTypes(relationshipDescription.getTarget(), relationshipTypes,
538+
processedRelationshipDescriptions);
539539
}
540540
}
541541

0 commit comments

Comments
 (0)