2016-06-12 36 views
0

我有一堆關於Java 8和SDN4的問題。我在Neo4j v3.0中創建了一個模型,對Cypher查詢起了一點作用,現在開始創建一個Spring Boot應用程序。當我開始用Java編寫類時,我開始重新思考我的一些模型。這裏有一些我腦海中的問題(我還沒有找到一個解釋這個問題的例子):Java8和Spring Data Neo4j應用程序查詢

  1. 您是否需要使用Java中的接口和SDN?我會編寫一個Product界面,然後讓我的產品實現它,但是在使用標籤時它是如何完成的?
  2. 這有點與我的遺傳問題有關 - 我通常會有一個ProductFamily,我的Product會繼承。在數據庫級別,其模型爲(:Product)-[PartOf]->(:ProductFamily),但在代碼中這些不會是超級/子類。
  3. 任何在圖上下文中使用泛型的例子?
  4. 有沒有一種方法來定義約束節點可以有什麼關係和它們在Java中的方向?

我知道這裏可能沒有一個正確的答案,但網絡上的寶貝很少,所以希望能夠在這裏得到啓發!

回答

2
  1. 如果你有一個產品界面標註爲@NodeEntity,那麼你就必須在除了你的實現類,這是我承擔的標籤Product標籤是你想要的。如果你的接口沒有註釋,那麼你的實現類將不會從它繼承一個標籤。

  2. 不確定你的意思 - 如果你說你有一個ProductFamilyProduct繼承自,但在代碼中它不會是一個超級/子類? 根據您的圖表模型,如果您需要(:Product)-[PartOf]->(:ProductFamily),那麼您將擁有一個Product類,該類保留對ProductFamily類的引用,並且該引用用@Relationship註釋。如果Product類繼承自ProductFamily,則堅持Product將產生兩個標籤-和ProductFamily,因爲Product IS-A ProductFamily

  3. 您如何看待自己使用泛型 - 答案真的取決於這一點。某些情況下被支持,有些沒有(一個東西,不支持現在的問題是equivalent of template.createRelationBetween in SDN4例子)

  4. 是,通過@Relationship註釋,它接受一個typedirection。請注意,此註釋僅限制您的域模型,但您可以通過自定義查詢在另一個方向上創建關係,從而很好地摒棄這種情況。

+0

謝謝!重新(2)和(3),我的想法是,我可以使用基於ProductFamily的集合作爲泛型,即使我有產品在查詢中返回。大多數屬性都是在'ProductFamily'類中定義的,'Product'類只具有特定的屬性。例如。用戶查詢所有支持特定功能的'產品',然後我可以返回'ProductFamily',如果它有全系列功能,則返回'ProductFamily';如果沒有,則返回一些特定的'產品',但我的集合是相同的。希望是有道理的! – aaaaarrrgghhh

+0

是的,儘管在產品節點(Product和ProductFamily)上有兩個標籤, – Luanne

相關問題