我想用Spring Data Neo4j代表这种类型的建模:
Object ------Value------> Property
...其中Object
和Property
为NodeEntity
,其中Value
为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做到这一点?
谢谢。
答案 0 :(得分: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() {
}
}
答案 1 :(得分:0)
你能否使用泛型?
Property<T> {
...
T value();
}