实现NodeEntity基类,标签的含义

时间:2014-11-05 08:51:34

标签: neo4j spring-data-neo4j

我希望为每个继承的节点类提供以下类型的基类。

@NodeEntity
public abstract class NodeEntityBase {

// id is not used with advanced mapping spring-data-neo4j.
@GraphId
protected Long id;

@Indexed(unique = true)
@NotNull
protected String appId;

...

但是如果我实现它,Spring-data-neo4j将为每个节点创建NodeEntityBase标签。我并没有真正使用这个标签,我担心这是否会在以后出现性能问题(或其他一些问题)。我知道标签索引中的条目限制为2亿(int max),这可能会成为一个问题,因此我想解决这个问题。

是否有良好的解决方法或设计来实现这一目标?我非常希望有基类(es),我可以在其中放置几乎每个节点都继承的属性(如创建时间戳等)。我知道我可以使用接口(如果接口也被标记,我还没有测试过),但我更乐意不需要将setter / getter放到每个继承的类中。

当有数百万个节点时会有性能下降吗?我再说一遍,我不会将这个标签用于查询。 20亿的限制可能足够大,所以我可以忘记这一点。

1 个答案:

答案 0 :(得分:0)

您可以尝试仅将@NodeEntity放在具体类上。

或者使用仅写入单个标签的TypeRepresentationStrategy的实现

像这样

https://gist.github.com/jexp/8b495cf6c6e81cc2a1c9