【发布时间】:2018-06-19 16:13:32
【问题描述】:
在 neo4j OGM 中,有没有办法在不同类型的节点之间映射相同的 @RelationshipEntity。
例如让我们考虑 3 个节点实体:
@NodeEntity(label = "STATE")
@JsonSnakeCase
public class StateEntity extends BaseEntity {
@Relationship(type = "CONTAINS")
private CityEntity cityEntity;
public CityEntity getCityEntity() {
return cityEntity;
}
public void setCityEntity(CityEntity cityEntity) {
this.cityEntity = cityEntity;
}
}
@NodeEntity(label = "CITY")
@JsonSnakeCase
public class CityEntity extends BaseEntity {
private String cityName;
@Relationship(type = "CONTAINS",direction = Relationship.INCOMING)
private StateEntity stateEntity;
@Relationship(type = "CONTAINS")
private List<BranchEntity> branchEntities;
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public StateEntity getStateEntity() {
return stateEntity;
}
public void setStateEntity(StateEntity stateEntity) {
this.stateEntity = stateEntity;
}
public List<BranchEntity> getBranchEntities() {
return branchEntities;
}
public void setBranchEntities(List<BranchEntity> branchEntities) {
this.branchEntities = branchEntities;
}
}
@NodeEntity(label = "BRANCH")
@JsonSnakeCase
public class BranchEntity extends BaseEntity {
@Relationship(type = "CONTAINS",direction = Relationship.INCOMING)
private CityEntity cityEntity;
}
我想用相同的@RelationEntity 映射所有实体(州、市和分支)@ 说CONTAINS:
@RelationshipEntity(type = "CONTAINS")
public class Contains extends BaseRelationshipEntity {
@StartNode
StateEntity start;
@EndNode
CityEntity end;
}
但是 OGM 只允许我添加州和城市之间的关系,我应该如何编写 OGM 以在多种类型的节点之间创建相同的RelationshipEntity?
或者我需要复制这个RelationshipEntity.?.
【问题讨论】:
-
同一个
relationship是什么意思?是同名的关系吗?或链接超过 02 个节点的relationship?
标签: graph neo4j spring-data-neo4j spring-data-neo4j-4 neo4j-ogm