0

我想用 Spring Data Neo4j 来表示这种类型的建模:

Object ------Value------> Property

... whereObjectPropertyare NodeEntity, whereValue是 a RelationshipEntity

例如:

Car1 ------String value="Ford"------> Brand
Car1 ------int value=20000------> Cost
Car2 ------int value=30000------> Cost
Car2 ------boolean value=true------> HasWheels

我知道我可以将所有这些属性直接放在汽车节点中。但我想在未来使用这种建模来进行图遍历优化。它看起来像这样:

@RelationshipEntity(type="PROPERTY_VALUE")
public class PropertyValue {
    @GraphId Long id;
    @StartNode Car car;
    @EndNode Property property;

    <???value_type???> value;

    public PropertyValue() {
    }
}

问题是我不知道该value属性必须使用哪种类型。Spring Data Neo4j 有没有可能做到这一点?

谢谢你。

4

2 回答 2

2

如果您的类型是 Neo4j 支持的所有类型,您可以使用 Object 作为目标类型。然后实际实例将作为适当的类型存储在 Neo4j 中。

@RelationshipEntity(type="PROPERTY_VALUE")
public class PropertyValue {
    @GraphId Long id;
    @StartNode Car car;
    @EndNode Property property;

    @GraphProperty
    Object value;

    public PropertyValue() {
    }
}
于 2012-03-13T23:40:10.907 回答
0

你不能使用泛型吗?

Property<T> {

...
T value();

}
于 2012-03-11T21:09:44.707 回答