SGTY 4 months ago
parent
commit
c797b181c9

+ 17 - 2
src/main/java/com/qizhen/healsphere/repository/neo4j/BaseNodeRepository.java

@@ -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;
+        }
+
+    }
 }