0

我正在使用弹簧 Neo4j。我有一个repository扩展类GraphRepository<T>uid我想根据下面方法的参数删除特定对象。

public interface TypeRepository extends GraphRepository<Type> {

    @Query("START n=node:node_auto_index(uid=uidValueYAA)" +
                "MATCH n-[r]-()" +
                "DELETE n, r")
    public void deleteByUid(String uidValueYAA);
}

注意:我的持久化类有一个索引注释,如下所示:

@GraphId
private Long id;
@Indexed(unique=true) private String uid;

当我使用这样的方法时,我得到以下异常:

typeRepository.deleteByUid(uid);

//The Exception
string literal or parameter expected|"START n=node:node_auto_index(uid=uidValueYAA)MATCH n-[r]-()DELETE n, r"|     

如何使用该方法根据uid我传递给该方法的内容删除特定节点?

4

2 回答 2

2

或者

    @Query("START n=node:node_auto_index(uid={uidValueYAA})" +
                "MATCH n-[r]-()" +
                "DELETE n, r")
    public void deleteByUid(@Param("uidValueYAA") String uidValueYAA);
于 2013-09-20T12:29:19.560 回答
1

您需要使用 {0} 代替名称,如下所示

@Query("START n=node:node_auto_index(uid={0})" +
                "MATCH n-[r]-()" +
                "DELETE n, r")
public void deleteByUid(String uidValueYAA);
于 2013-09-19T20:06:46.060 回答