मेरे पास एक पेड़ डेटा संरचना है जिसे मैं Neo4j का उपयोग करके स्टोर करना चाहता हूं।वसंत डेटा neo4j में ठीक उसी प्रकार के नोड के पदानुक्रमिक संबंध को कैसे कोड करें?
एक माता-पिता नोड :CodeSet
है, जो हमेशा पेड़ की जड़ है और एक बच्चे नोड :Node
है, जिसमें स्वयं एक ही प्रकार के बच्चे नोड्स हो सकते हैं। वे :SUBTREE_OF
के प्रकार के संबंध में निम्नानुसार जुड़े हुए हैं:
पैरेंट नोड लाल रंग में प्रदर्शित होता है और यह स्वयं ही हरे रंग में प्रदर्शित होता है।
जैसे ही माता पिता के नोड और बच्चे नोड्स कुछ सामान्य आंकड़े उपलब्ध नहीं हैं, मैं एक अमूर्त वर्ग बनाया: चाइल्ड नोड के लिए
public class CodeSet extends AbstractNode {
@Relationship(type = "SUBTREE_OF", direction = Relationship.OUTGOING)
private Application parent;
<getters and setters omitted>
}
कक्षा:: माता पिता नोड के लिए
public abstract class AbstractNode {
private Long id;
@NotEmpty
private String code;
@Relationship(type = "SUBTREE_OF", direction = Relationship.INCOMING)
private Set<Node> children;
<getters & setters omitted>
}
कक्षा
public class Node extends AbstractNode {
@NotEmpty
private String description;
@NotEmpty
private String type;
@NotEmpty
private String name;
@NotNull
@Relationship(type = "SUBTREE_OF", direction = Relationship.OUTGOING)
private AbstractNode parent;
<getters and setters omitted>
}
मुझे केवल एक बच्चे नोड अपडेट करने की आवश्यकता है। मैं अपने सेवा परत पर निम्न विधि का उपयोग:
public Node update(Node node, Long nodeId) throws EntityNotFoundException {
Node updated = findById(nodeId, 0);
updated.setDescription(node.getDescription());
updated.setType(node.getType());
updated.setName(node.getName());
updated.setCode(node.getCode());
nodeRepository.save(updated);
return updated;
}
इस के साथ मैं निम्नलिखित परिणाम मिला: संबंध टूट गया है। मैं भी findById
विधि पैरामीटर पर depth=1
निर्दिष्ट करने के लिए बाहर की कोशिश की, लेकिन वह गलत रिश्तों में एक बार फिर से हुई:
कि मैं-दिशात्मक विश्वविद्यालय इतनी के रूप में केवल एक ही वर्ग है मेरी वर्गों के लिए में द्वि-दिशात्मक संबंध को संशोधित करने के लिए बाहर की कोशिश की करने के बाद @Relatinship
फ़ील्ड के साथ एक एनोटेटेड फ़ील्ड, लेकिन इससे कोई मदद नहीं मिली।
यह काम कैसे करें?
हाय, एसडीएन का कौन सा संस्करण आप उपयोग कर रहे हैं? – Vince
@ विन्स यह 'org.springframework.data था: spring-data-neo4j: 4.1.2.RELEASE' – Polyakoff