簡體   English   中英

Spring Data Neo4j中的DynamicRelationshipType或在運行時定義關系類型

[英]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?

  • 在Neo4j中,我認為這樣的運行時關系類型需要使用DynamicRelationshipType,但是我不認為Spring Data Neo4j支持此概念。

參考文檔

注意

因為動態類型信息是動態的,所以通常無法使用SDN向后讀取映射。 該關系仍然存在,但是SDN無法幫助您訪問它,因為它不知道您給它指定了什么類型。 另外,由於這個原因,我們要求您指定默認的關系類型,以便至少可以嘗試反向映射。

因此,盡管仍然創建了動態關系,但是它無法使用該信息從Neo4j db中檢索回節點/關系。 默認關系是必需的,以便SDN至少可以返回已知關系。

  • 我是否正確,如果可以,那么是否存在此問題? 我是否需要轉儲Spring Data Neo4j並轉而使用Core API?

您可以使用SDN使用@RelationshipType創建所需的所有動態關系,但無法使用默認API找回它。 您可以編寫自己的Cypher或編寫遍歷代碼,然后使用@Query將其附加到存儲庫或節點屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM