Multiple/Optional 端节点 Neo4j

Multiple/Optional EndNode Neo4j

当前情景:

用户可以拥有一辆汽车和一辆摩托车,因此用户可以拥有 1 个关系 [:OWNS] :Car 和另一个 to :Motorcycle。用户也可以两者都没有或只有其中之一。

U->C & U->M
U->C 
U

当前关系实体:

@RelationshipEntity(type = "OWNS")                      
public class Owns {

@GraphId                                    
Long relationshipId;                            

private int price;

@StartNode                          
Car car;                                

@EndNode                                    
Motorcycle motor;
}

如何设置一个用户只有其中一个?因为我得到一个 EndNode 不能为空的错误,这在这一点上是可以理解的。有没有办法让另一个 endNode 可选?

谢谢

可能是对@RelationshipEntity 的误解? 关系实体只是两个节点之间具有属性的关系。

@StartNode                          
Car car;                                

@EndNode                                    
Motorcycle motor;

是说汽车拥有摩托车。

你想要的是拥有汽车或摩托车的用户,所以如果你有迈克尔建议的超类 Vehicle,那么你将拥有以下内容:

@RelationshipEntity(type = "OWNS")                      
public class Owns {

@GraphId                                    
Long relationshipId;                            

private int price;

@StartNode                          
User user;                                

@EndNode                                    
Vehicle vehicle;
}

用户会:

@Relationship(type="OWNS")
Set<Owns> vehiclesOwned;

并且这个集合中可以有零个或一个或多个车辆。