簡體   English   中英

如何在Neo4j密碼查詢中將變量放入存儲庫

[英]How to put a variable in a Neo4j cypher query for a repository

我正在使用spring neo4j。 我有一個擴展GraphRepository<T>repository類。 我想基於以下方法的參數中的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刪除特定節點?

要么

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

您需要使用{0}代替如下所示的名稱

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM