我試圖刪除一段關係,並且這個小文檔錯誤顯示出來。Neo4j和java:這個錯誤是什麼「NULL不是鍵集合」是什麼意思?
查詢:
MATCH()-[r:SendTo]-(n:Wallet)
WHERE NOT()-[:BelongTo]->(n)
DELETE r
RETURN r
整個錯誤輸出:
Exception in thread "main" org.neo4j.driver.v1.exceptions.value.NotMultiValued: NULL is not a keyed collection
at org.neo4j.driver.internal.value.ValueAdapter.get(ValueAdapter.java:192)
at basicANeo4j.Importer.<init>(Importer.java:213)
at basicANeo4j.Importer.main(Importer.java:246)
當我檢查了對應關係,也沒有它的屬性,它是空:
<id>:595 value_bitcoin:20000000000outputIndex:defaultuniqueReferenceTran:bcaeee45968b5a08c88ed7a0d90a1275728eda356013465408197e9f77c634daNULLtranHashString:bcaeee45968b5a08c88ed7a0d90a1275728eda356013465408197e9f77c634datime:2016-01-01T22:55:26type:pubkeyhashvalue_dollar:86554.0estChanAddr:3KgtbGgaX2ngstNpvyv7LwpHSweVeqGbpM
我看了一下ValueAdapter.class,這是相關的代碼:
@Override
public Value get(String key)
{
throw new NotMultiValued(type().name() + " is not a keyed collection");
}
沒有任何文檔,它根本沒有任何幫助。
我只是試圖不刪除:'MATCH() - [r:SendTo ] - >(n:Wallet)WHERE NOT() - [r:BelongTo] - >(n)RETURN r'。仍然不起作用(同樣的錯誤)。引起我注意的原因是由於這樣的事實:當一個節點應該被刪除時,它不能被刪除,因爲與該節點相關的關係不會被刪除。 – Aqqqq
@Aqqqq這是一個非常不同的查詢。你試圖將'r'與不同類型的兩個關係(:SendTo和:BelongTo)進行匹配。這是不可能的。 – InverseFalcon
您可以隨時刪除關係,而無需先將其分開。但是,在刪除節點時,應始終使用'DETACH DELETE'而不是單獨刪除。 – InverseFalcon