在我的Spring Boot/Neo4j應用程序中,我有一棵Neo4j節點的大樹,現在我想爲每個節點實現分層註釋。Neo4j分層註釋體系結構和最佳實踐
我計劃創建一個新的Comment
實體,現在有幾個關於解決方案設計的問題。
@NodeEntity
public class Comment {
@RelatedTo(type = CONTAINS, direction = Direction.OUTGOING)
private Set<Decision> childComments = new HashSet<>();
}
另外,我打算使用註釋針對不同類型,例如用於Post
,User
,Company
等:所以我打算創造這樣的事情
評論在我的應用程序必須是分層的。
我應該創建一些接口,比如說Commentable
,並在Post
,User
,Company
類中實現這個接口嗎?
如果是這樣,我可以在我的Comment
類中使用此接口(而不是 @NodeEntity
)?例如:
@NodeEntity
public class Comment {
@RelatedTo(type = CONTAINS, direction = Direction.OUTGOING)
private Set<Decision> childComments = new HashSet<>();
@RelatedTo(type = CONTAINS, direction = Direction.INCOMING)
Commentable owner;
}
同樣,如果每條評論都會知道它的主人,如何確定,例如(一定Commentable
節點根元素徵求意見樹)某個節點上的第一評論?也許通過評論創建日期?
Neo4j/Cypher/SDN中是否有一種方法通過查詢數據直接獲取評論樹,或者它應該在代碼中實現(在我的應用程序的業務邏輯中)?
謝謝您的回答。你的假設是正確的 - 「可評論」擁有一個根評論列表。那麼,如何獲取所有評論樹(而不是一棵樹)對於這個特定的可評論?例如,基於'commentable.id'進行查詢? – alexanoid
是的,可以是'MATCH(commentable:{id:{id})< - [:COMMENTABLE_COMMENTS] - >(comment) - [:CHILD_COMMENTS *] - >(child)' – remigio