Neo4j。如何将附加参数存储到已保存的实体中?

Neo4j. How to store additional parameters to entity already saved?

我需要为 Device\SoftwareEntityEntity 使用不同的参数。 Device\Software 将存储在数据库中,一旦创建了新的 Entity - 它将与一些已经存储的 Device\Software 建立关系,但它们的参数可能因不同的 Entities 而异(参数的数量或它们的值)。

我试图在图表的边缘直接保存额外的参数(在 EntityDevice\Software 之间的 RelationshipEntity 中),但似乎它可能会在实现某些网络时增加复杂性比较算法。

有没有人遇到过类似的情况?什么是最好的practice\approach?

@NodeEntity
public class Entity {

    @GraphId
    protected Long id;
    protected String title;
    /**
     * More fields here 
     */

    @Fetch
    @RelatedTo(direction = Direction.BOTH, type = "has_devices")
    protected Set<Device> devices = new HashSet<>();

    @Fetch
    @RelatedTo(direction = Direction.BOTH, type = "has_software")
    protected Set<Software> software = new HashSet<>();
}


@NodeEntity
public class Device {

    @GraphId
    protected Long id;
    protected String identifier;
    /**
     * More fields here 
     */

    @Fetch
    @RelatedTo(direction = Direction.BOTH, type = "has_parameter")
    protected Collection<ParameterEntity> parameter = new HashSet<>();
}

@NodeEntity
public class Software {

    @GraphId
    protected Long id;
    protected String identifier;
    /**
     * More fields here 
     */

    @Fetch
    @RelatedTo(direction = Direction.BOTH, type = "has_parameter")
    protected Collection<ParameterEntity> parameter = new HashSet<>();
}

ParameterEntity 只是 Key-Value 对象。

不太确定参数是什么意思。但是将他们保存在关系中应该会起作用。如果不需要,可以忽略算法中的参数。

这真的取决于你的参数是只是量化关系,还是它们本身就是真实的实体。