我尝试将地图或json对象存储为Neo4j中的属性,但它不起作用。
答案 0 :(得分:10)
现在这是节点属性的限制。您可以选择一些解决方法。
您可以将json对象转换为字符串并将其另存为属性。您可以使用APOC Procedures将JSON字符串与Cypher地图对象进行转换。
您可以将地图属性保存为节点上的属性,但会丢失从对象本身获得的分组。
如果#2不够,您还可以更改图形模型,以便JSON对象中的数据对应于与原始节点相关的图形对象,节点和属性。
答案 1 :(得分:0)
neo java OGM库支持将地图存储为属性。如果使用@Properties注释java类字段,库将展开地图到图形节点属性。
类别:
<ListBox.ItemTemplate>
<DataTemplate>
<DockPanel >
<Button DockPanel.Dock="Left" Content="Show" Command="{Binding DataContext.ShowCommand,ElementName=List}" CommandParameter="{Binding}"/>
<TextBlock Text="{Binding }"/>
</DockPanel>
</DataTemplate>
</ListBox.ItemTemplate>
如何在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;
}
}
neo中的外观如何:
请注意,如果您最终使用带有点“。”的地图键,则从neo =&gt;加载实体时可能会产生时髦的副作用。嵌套地图。然后考虑更改@Properties中的分隔符或更改密钥。