2014-03-24 77 views
0

SDN V3.0.0發佈 Neo4j的社區我有一個有點問題與問候繼承和集合2.0.1彈簧數據的Neo4j類多態性

。也許有人可以協助解決這個問題。我基本上有以下結構。

public abstract class Graphic; 

public class Shape1 extends Graphic; 

public class Shape2 extends Graphic; 

public class Shape3 extends Graphic; 

public class Overlay { 

    Set<Graphic> graphics; 

} 

public interface GraphicsRepository extends GraphRepository<Graphic>{} 

我可以使用圖形存儲庫保存圖形,並根據具體的類正確存儲所有各種屬性。我可以使用正確的屬性查詢和獲取單個圖形,並在neo4j「門戶」環境中執行各種與類關聯的事情。但是當我在覆蓋圖上進行檢索時,我只能獲得基類Graphic作爲集合中的類類型並且不能工作。我可能會忽視某些事情,或者只是沒有做正確的事情,但我想我會發布,看看有沒有人可以建議。我搜索谷歌和堆棧溢出,並且只發現類似的問題,它是主要類,從來沒有內部的對象集合。

此外,當我從Graphic類中移除抽象時,我得到了相同的結果疊加圖形集中的所有項都是Graphic類型。並且添加@TypeAlias似乎沒有幫助。

由於

回答

1

好吧,我發現這個問題......有種感覺愚蠢,但我忘了把@Fetch的圖形集合。奇怪的是,它確實檢索圖形對象,但它們都是Graphic的類型。當我添加訪問集合,收集項目檢索與正確的類型。

0

實際上它應該使用存儲在圖中的類型來構造實體,即,最具體類型(在SDN 3.0.1它是由「_」前綴,所以應該是「_Shape1」等等)

你可以檢查圖中節點的標籤嗎?

+0

Michael,謝謝你的回覆。 我檢查過圖中的標籤,所有節點都有正確的標籤,前面加了「_」。所有擴展其他類的類也都有父類標籤。但是,當訪問疊加層中的集合時,無論是通過迭代器還是每個循環等,類型始終爲Graphic。 –

+0

進一步的調查顯示,當我檢索圖形時,GraphicRepository findAll會保留類型信息。但是,檢索圖形集合時OverlayRepository不會。當我遇到他們時,會分享更多細節。 –