2012-08-01 109 views
0

我正在使用Spring Data Neo4j,并使用Cypher-Language进行某些查询。很好的工作,但删除节点不工作。无法使用Cypher删除节点

例如:

@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,因为它与弹簧数据的Neo4j和内核1.6的冲突。

任何人都可以帮助我吗?

我不想删除节点

repository.delete(5); 

因为我也想删除的关系和更多。

Thx!

+0

在1.8之前的密码不支持更新操作。删除对不起,关于使用template.delete(5)或原始repository.delete(5) – 2012-08-07 22:28:57

回答

0

有趣的想法,没有尝试,但B/C SDN仍然正式指向Neo4j 1.7,但这将很快改变。

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

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

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

1

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

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