diff --git a/src/main/java/org/springframework/data/neo4j/repository/query/CypherQueryCreator.java b/src/main/java/org/springframework/data/neo4j/repository/query/CypherQueryCreator.java index cc851b0c1..57322d79f 100644 --- a/src/main/java/org/springframework/data/neo4j/repository/query/CypherQueryCreator.java +++ b/src/main/java/org/springframework/data/neo4j/repository/query/CypherQueryCreator.java @@ -44,7 +44,6 @@ import org.neo4j.cypherdsl.core.Predicates; import org.neo4j.cypherdsl.core.Property; import org.neo4j.cypherdsl.core.RelationshipPattern; import org.neo4j.cypherdsl.core.SortItem; -import org.neo4j.cypherdsl.core.Statement; import org.neo4j.driver.types.Point; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Range; @@ -260,13 +259,8 @@ final class CypherQueryCreator extends AbstractQueryCreator Neo4jQuerySupport.logParameterIfNull(p.nameOrIndex, p.value)) .collect(Collectors.toMap(p -> p.nameOrIndex, p -> parameterConversion.apply(p.value, p.conversionOverride))); - if (queryType == Neo4jQueryType.DELETE) { - Statement statement = CypherGenerator.INSTANCE.prepareDeleteOf(nodeDescription, condition, true); - return new QueryFragmentsAndParameters(statement.getCypher(), convertedParameters); - } else { - QueryFragments queryFragments = createQueryFragments(condition, sort); - return new QueryFragmentsAndParameters(nodeDescription, queryFragments, convertedParameters); - } + QueryFragments queryFragments = createQueryFragments(condition, sort); + return new QueryFragmentsAndParameters(nodeDescription, queryFragments, convertedParameters); } @NonNull @@ -300,6 +294,9 @@ final class CypherQueryCreator extends AbstractQueryCreator session.run("CREATE (p1:Pet{name: 'Pet1'})-[:Has]->(p2:Pet{name: 'Pet2'})").consume()); + + repository.deleteByNameAndFriendsName("Pet1", "Pet2"); + doWithSession(session -> { + assertThat(session.run("MATCH (p1:Pet{name: 'Pet'}) return p1").list()).hasSize(0); + return null; + }); + } + @Test void findBySameLabelRelationshipPropertyMultipleLevels(@Autowired PetRepository repository) { doWithSession(session -> session.run("CREATE (p1:Pet{name: 'Pet1'})-[:Has]->(p2:Pet{name: 'Pet2'})-[:Has]->(p3:Pet{name: 'Pet3'})").consume()); @@ -4364,6 +4376,8 @@ class RepositoryIT { Pet findByFriendsName(String friendName); + Long deleteByNameAndFriendsName(String name, String friendsName); + Pet findByFriendsFriendsName(String friendName); long countByName(String name);