我有以下 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
?
是否可以通过以下查询搜索WeightedValue
节点(按标签)?Value
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;
}