我有几个属性的优势。我想保持优势,但只删除 name 属性。
我的 java Cypher 是这样的:
public static final String DELETE_EDGE_PROPERTY_QUERY = //
"MATCH ()-[r]->() where id(r) = {1} REMOVE r.{2} RETURN r"; //
它适用于密码控制台,但不适用于 jdbc。
我收到了这个错误:
处理失败;嵌套异常是 org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; SQL [MATCH ()-[r]->() 的未分类 SQLException 其中 id(r) = {1} REMOVE r.{2} RETURN r]; SQL 状态 [null]; 错误代码[0];发生一些错误:[Neo.ClientError.Statement.SyntaxError]:Invalid input '{': expected an identifier, whitespace, a function name or a property key name (line 1, column 45 (offset: 44)) "MATCH () -[r]->() where id(r) = {1} REMOVE r.{2} RETURN r" `
有什么建议么?
谢谢
编辑
我无法使用 jdbc 模板。所以我使用了字符串替换:将属性设置为 NULL 将删除该属性(http://www.baeldung.com/java-neo4j)
解决方案:Java:
String deleteQuery = String.format(DELETE_EDGE_PROPERTY_QUERY, property);
plantJdbcTemplate.update(deleteQuery, edgeId);
密码:
public static final String DELETE_EDGE_PROPERTY_QUERY = //
"MATCH ()-[r]->() where id(r) = {1} SET r.%s = NULL RETURN r";