[英]DynamicRelationshipType in Spring Data Neo4j or defining relationship types at runtime
我可以在運行時指定關系類型嗎?
我正在使用類似的東西在實體內創建一組RelationshipEntity對象
@Fetch
@RelatedToVia(type="RELATED_IN_SOME_WAY", direction = Direction.BOTH)
Set<ThingRelationship> relationships = new HashSet<ThingRelationship>();
ThingRelationship在哪里
@RelationshipEntity
public class ThingRelationship {
public ThingRelationship() {
super();
}
//incremental neo4j set ID
@GraphId Long nodeId;
//Start and end nodes
@StartNode Thing startThing;
@EndNode Thing endThing;
//Relationship Type
@org.springframework.data.neo4j.annotation.RelationshipType
String relationship;
但是我不想在編譯時而是在運行時指定關系類型( type =“ RELATED_IN_SOME_WAY” )。 當我刪除type =“ RELATED_IN_SOME_WAY時,出現錯誤,必須定義默認類型
在Neo4j中,我認為這樣的運行時關系類型需要使用DynamicRelationshipType,但是我不認為Spring Data Neo4j支持此概念。
我是否正確,如果可以,那么是否存在此問題? 我是否需要轉儲Spring Data Neo4j並轉而使用Core API?
從參考文檔
注意
因為動態類型信息是動態的,所以通常無法使用SDN向后讀取映射。 該關系仍然存在,但是SDN無法幫助您訪問它,因為它不知道您給它指定了什么類型。 另外,由於這個原因,我們要求您指定默認的關系類型,以便至少可以嘗試反向映射。
因此,盡管仍然創建了動態關系,但是它無法使用該信息從Neo4j db中檢索回節點/關系。 默認關系是必需的,以便SDN至少可以返回已知關系。
您可以使用SDN使用@RelationshipType
創建所需的所有動態關系,但無法使用默認API找回它。 您可以編寫自己的Cypher或編寫遍歷代碼,然后使用@Query
將其附加到存儲庫或節點屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.