回退删除CYPHER,当节点有多条边时,删除抛异常是期望结果,不能使用detach直接删除节点

master
yaxin 4 months ago
parent 35c90d44b8
commit 4dbc1e1142

@ -92,13 +92,14 @@ public class Neo4jServiceImpl implements Neo4jService {
try {
Session session = driver.session();
StringBuilder cql = new StringBuilder();
cql.append("MATCH (n) where id(n) = ").append(id).append(" DETACH DELETE n");
cql.append("MATCH (n) where id(n) = ").append(id).append(" DELETE n");
log.info(cql.toString());
Result run = session.run(cql.toString());
while (run.hasNext()) {
run.next();
}
} catch (Exception e) {
//如果报错,说明存在未删除的关系,是合理的
log.error(e.getMessage(), e);
}
}
@ -108,13 +109,14 @@ public class Neo4jServiceImpl implements Neo4jService {
try {
Session session = driver.session();
StringBuilder cql = new StringBuilder();
cql.append("MATCH (n) WHERE id(n) = ").append(id).append(" DETACH DELETE n");
cql.append("MATCH (n) WHERE n.id = ").append(id).append(" AND NOT (n)--() DELETE n");
log.info(cql.toString());
Result run = session.run(cql.toString());
while (run.hasNext()) {
run.next();
}
} catch (Exception e) {
//如果报错,说明存在未删除的关系,是合理的
log.error(e.getMessage(), e);
}
}

Loading…
Cancel
Save