|
@@ -202,12 +202,12 @@ public class BaseNodeRepository {
|
|
|
if (!aResult.hasNext() || !bResult.hasNext()) {
|
|
|
throw new RuntimeException("One or both nodes not found");
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 创建新节点
|
|
|
Map<String, Object> newNodeProps = new HashMap<>();
|
|
|
newNodeProps.put("name", mergeNodeParam.getNewName());
|
|
|
StatementResult newNodeResult = session.run(
|
|
|
- String.format("MERGE (n:`%s` {name:$name}) RETURN n", mergeNodeParam.getNewLabel()),
|
|
|
+ String.format("CREATE (n:`%s` {name:$name}) RETURN n", mergeNodeParam.getNewLabel()),
|
|
|
Values.parameters("name", newNodeProps.get("name"))
|
|
|
);
|
|
|
Node newNode = newNodeResult.single().get("n").asNode();
|
|
@@ -422,4 +422,19 @@ public class BaseNodeRepository {
|
|
|
return trees;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public BaseEntity renameLabel(String newLabel,String oldLabel,Long id) {
|
|
|
+ String query = String.format("MATCH (n:`%s`) WHERE id(n)=$id SET n:`%s` REMOVE n:`%s` RETURN n", oldLabel,newLabel,oldLabel);
|
|
|
+ try(Session session = neo4jUtil.getSession()) {
|
|
|
+ StatementResult result = session.run(query,Values.parameters("id", id));
|
|
|
+ if(result.hasNext()) {
|
|
|
+ List<Record> records = result.list();
|
|
|
+ for (Record record : records) {
|
|
|
+ return buildBaseEntity(record.get("n").asNode());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|