我創建了一個包含Spring Data Neo4j類的數據訪問層,它們在接口的後面進行訪問。使@Fetch與接口一起工作
例如,我有一輛車的界面和使用SDN註解像@RelatedTo
一個CarNode類:
@RelatedTo(elementClass = CarNode.class, type = "drives", direction = OUTGOING)
private Set<Driver> drivers;
如果你仔細觀察,你會發現@RelatedTo指CarNode
類和drivers
被定義爲Set<Driver>
(而不是Set<DriverNode>
)。
這工作正常。
現在我想用@Fetch
啓用急切加載。
如果我簡單地做:
@RelatedTo(elementClass = CarNode.class, type = "drives", direction = OUTGOING)
@Fetch
private Set<Driver> drivers;
我收到以下錯誤:
Type interface org.my.project.Driver is neither a @NodeEntity nor a @RelationshipEntity
這是可能的,告訴@Fetch
它應該期待DriverNode
,就像它是可能的@RelatedTo
當我們使用elementClass
屬性?
我想避免打破我目前的架構。感謝您的提示!
嗨Remigio。我嘗試了你的想法,並且我得到了'類型不匹配:無法從集合轉換爲集合'。似乎沒有可能投出集合。你確定這是你用過的嗎? –
我的錯,我用正確的代碼編輯了我的答案。 – remigio
謝謝,這個工程。唯一的缺點是我的界面現在顯示'Set <?擴展SomeInterface>'這看起來並不像Set那麼簡單。 –