0

我正在研究 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 data neo4j 和内核 1.6 冲突。

有谁能够帮我?

我不想删除一个节点

repository.delete(5);

因为我也想删除关系等等。

谢谢!

4

2 回答 2

1

我认为您应该删除与要删除的节点的关系。@Query("启动 u=node(5) 删除 u")

如果你想删除一个节点,你应该确认该节点与其他节点没有关系。请尝试以下代码:@Query("start u=node(5) match u-[r]-() delete u,r")

于 2012-12-13T08:15:28.720 回答
0

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

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

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

您还需要添加@Transactional到方法中。

于 2012-08-02T08:15:10.953 回答