我有以下Spring数据Neo4j 5实体:
@NodeEntity
public class Value extends Flaggable {
@Index(unique = true)
private Long id;
private String name;
private String description;
@Index(unique = false)
private Object value;
}
现在,值
节点具有以下标签:
MATCH(n:Value) RETURN labels(n) LIMITS 1
["BaseEntity", "Subscribable", "Flaggable", "Likeable", "Value"]
在某些情况下,根据我的项目要求,我需要使用附加属性扩展值
节点,例如重量
和大小
。
我不想更改现有的值
类,而是想引入一个新的继承类,例如:
@NodeEntity
public class WeightedValue extends Value{
private Long weight;
private Long size;
}
我有一个问题,下面的查询MATCH(n: Value)RetURN n
是否也返回WightedValue
的实例?
是否可以通过以下查询搜索WeightedValue
节点(通过Value
label)?
匹配(n:Value),其中n.size
上面的方法适用于
@关系实体
和继承吗?那么,是否可以对@关系实体
使用继承,以及如何为基类和继承类保持相同的标签(例如HAS_VALUE_ON
),例如:
@RelationshipEntity(type = "HAS_VALUE_ON")
public class RelationshipValue {
@Id
@GeneratedValue
private Long id;
@StartNode
private Decision decision;
@EndNode
private Characteristic characteristic;
}
@RelationshipEntity(type = "HAS_VALUE_ON")
public class WeightedRelationshipValue extends RelationshipValue {
private Long weight;
private Long size;
}
对于您的问题的第一部分,由加权值扩展值类创建的节点将同时具有值
和加权值
标签(如果您愿意,您可以使其不具有超级类)。因此,只要所有WightedValue
节点都是Value
节点,那么您就可以在Value
节点上进行MATCH
。
另外,在您的问题中,您会问一个CypherMATCH
查询是否有效,但我想确保您没有假设SDN可能将存储库查询转入的幕后查询(即findAll())。我一点也不确定,但SDN可能会转换一些东西,比如weightedValueRepo。findAll()
转换为如下内容:MATCH(n:Value:WeightedValue)返回n
在Cypher中,它返回节点,从而返回其所有属性。但是,如果在Java中使用了List
因此,在Cypher中,在值标签上进行匹配/查询可以让您访问整个节点(包括仅在WeightedValue对象中定义的属性,通过SDN进行查找/匹配可能不会,因为OGM必须将节点的属性映射到类(并且该超类通常不具有与其子类相同的属性)。
对于第二部分,我认为单一的
关系
只有一种类型,不能像标签那样工作,在标签中一个实体可以有多个。但是,您可以在同一节点之间创建多个不同类型的关系。如果SDN是否会创建两个关系,我不确定一个@RelationshipEntity
是否会扩展另一个。也许你可以试试,让我知道微微微笑的脸:
我目前正在使用Spring和neo4j。一个任务是使用linkurious显示图形。但是,如何通过Spring-data-neo4j告诉Spring节点的标签?我需要标签在linkurious中给图表上色。如果使用图形存储库中定义的,将只返回节点属性? 有什么建议吗? 更新 我试图使用,但响应有问题。更具体地说: 然后在存储库中,我有 最后,我会得到一个结果与
我想使用py2neo的OGM来表示从一个节点类型到两个节点类型的关系。 这段关系的“结束”应该指向一辆车,而不是一栋房子。但显然py2neo并不关心那么多,而是像预期的那样将所有东西都存储在数据库中:一个人、一辆车和一栋房子通过拥有关系连接起来。 现在的问题是使用上面的类来检索节点和关系。当节点属性正确加载时,关系不是: 这导致: 此行为与类对象一致。 我如何在py2neo.ogm中用同一个类建模
注意 当前章节中涉及的配置一般适用于关系数据库。这里展示的扩展方法在你安装了关系数据库提供程序之后就能获得(由Microsoft.EntityFrmeworkCore.Relational 程序包共享)。 EF 模型中的继承被用来控制实体类型继承在数据库中的表现方式。 惯例 按照惯例,使用每个层次结构一张表(table-per-hierarchy,TPH)的模式来进行映射。TPH 使用单一的表来存
我开始将Neo4J与Spring数据Rest一起使用。我有一个用于建模节点和边的节点实体和关系实体。我能够使用postman创建具有以下内容的新节点。 我不确定创建节点之间关系的JSON格式是什么。例如: 创建新节点并与现有节点关联 任何关于我需要使用什么JSON的例子都将不胜感激。 我的节点实体和关系实体如下:
问题内容: 我一直在使用此d3项目中的示例代码来学习如何显示d3图形,但似乎无法使文本显示在圆圈的中间)。我看过其他示例并尝试添加 和 在定义了节点之后,但是当我将鼠标悬停在每个节点上时,我看到的唯一结果是显示“要显示的节点名称”。它没有显示为圆圈内的文本。我是否需要编写自己的svg文本对象,并根据圆的半径确定需要放置的svg文本对象的坐标?从其他两个示例来看,似乎d3已经以某种方式进行了处理。我
Cocos2d-x 的 节点关系,是被附属和附属的关系,就像数据结构中的父子关系,如果两个节点被添加到一个父子关系中,那么父节点的属性变化会被自动应用到子节点中。想一下处于父子关系中的精灵有什么特性。 这三个精灵被添加到了一个父子关系中,当父精灵(被其它精灵附属的精灵)设置了旋转角度之后,子精灵也会自动做同样的改变: auto myNode = Node::create(); // rotati