无法用Cypher删除节点

时间:2012-08-01 17:08:55

标签: spring graph neo4j cypher

我正在使用Spring Data Neo4j并使用Cypher-Language进行一些查询。工作正常,但删除节点不起作用。

例如:

@Query("start u=node(5) delete u")
void deleteNode();

我使用依赖项

<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-cypher</artifactId>
    <version>1.6.2</version>
</dependency>
<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-kernel</artifactId>
    <version>1.6.2</version>
</dependency> 
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-neo4j</artifactId>
    <version>2.0.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-neo4j-rest</artifactId>
    <version>2.0.1.RELEASE</version>
</dependency>

我不能使用Cypher的1.7.2版本,因为它与spring数据neo4j和内核1.6冲突。

任何人都可以帮助我吗?

我不想删除带有

的节点
repository.delete(5);

因为我也想删除关系等。

THX!

2 个答案:

答案 0 :(得分:1)

我认为您应该删除与要删除的节点的关系。 @Query(“start u = node(5)delete u”)

如果要删除节点,则应确认该节点与其他节点没有关系。 请试用以下代码: @Query(“start u = node(5)match u- [r] - ()delete u,r”)

答案 1 :(得分:0)

有趣的想法,没有尝试,但是b / c SDN仍然正式指向Neo4j 1.7,但这很快就会改变。

为什么不能更新到SDN 2.1.RC2?

SDN 2.0.1不适用于Neo4j 1.8,因为Neo4j中有API更改。

您还需要在方法中添加@Transactional