我有一个Spring Data 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;
}
目前Value
节点具有以下标签:
MATCH(n:Value) RETURN labels(n) LIMITS 1
["BaseEntity", "Subscribable", "Flaggable", "Likeable", "Value"]
在某些情况下,根据我的项目需求,我需要扩展
Value
节点的其他属性,例如weight
和size
。我不想更改现有的
Value
类,并希望引入一个新的继承类,例如:@NodeEntity
public class WeightedValue extends Value{
private Long weight;
private Long size;
}
我有一个问题,以下查询MATCH(n:Value) RETURN n
是否也会返回WeightedValue
的实例?
是否可以通过以下查询按Value
标签搜索WeightedValue
节点?
MATCH(n:Value) WHERE n.size > 1000 RETURN n
上述方法对于@RelationshipEntity
和继承是否有效?因此,是否可以使用继承来@RelationshipEntity
,如何保持基类和继承类的相同标签(例如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;
}