2017-06-05 49 views

回答

5

這是現在節點屬性的限制。您有幾種解決方法可供選擇。

  1. 你可以把你的json對象變成一個字符串並保存爲一個屬性。您可以使用APOC Procedures將JSON字符串轉換爲Cypher地圖對象以及從中轉換。

  2. 您可以改爲將地圖屬性保存爲節點上的屬性,儘管這會丟失從對象本身獲得的分組。

  3. 如果#2還不夠,還可以更改圖形模型,以便JSON對象中的數據對應於與原始節點相關的圖形對象,節點和屬性。

+0

非常感謝。 T使用apoc.convert.getJsonProperty()將數據轉換爲對象,使用apoc.convert.toJson(map)存儲數據 –

0

將neo java OGM庫支持將屬性存儲爲屬性。如果使用@Properties註釋java類字段,該庫將展開您的映射到圖節點屬性。

類:

@NodeEntity 
public class DataNode { 

    @GraphId 
    private Long id; 

    @Properties 
    private Map<String, String> map = new HashMap<>(); 

    public Map<String, String> getMap() { 
     return map; 
    } 

    public void setMap(Map<String, String> map) { 
     this.map = map; 
    } 
} 

如何在Java中使用:

DataNode data = new DataNode(); 
    data.getMap().put("testKey", "keyvalue"); 
    data.getMap().put("myKey", "key value for my key"); 

它怎麼會看在新:

enter image description here

請注意,如果你最終使用的地圖鍵點「。」,當從neo => nes加載實體時,可能會產生時髦的副作用特德地圖。考慮更改@Properties中的分隔符或更改密鑰。

相關問題