0
图片我有以下实体:公司与员工,与弹簧数据Neo4j的注解:弹簧数据Neo4j的关系
Company.java
@NodeEntity(label = "Company")
public class Company {
/**
* Graph ID
*/
@GraphId
private Long id;
......
}
Employee.java
@NodeEntity(label = "Employee")
public class Employee {
/**
* Graph ID
*/
@GraphId
private Long id;
......
}
然后是这些实体的关系实体:
@RelationshipEntity(type = "EMPLOY")
public class EmployRel {
/**
* Graph ID
*/
@GraphId
private Long id;
@StartNode
private Company company;
@EndNode
private Employee employee;
......
}
那么如何在Company
和Person
中保留参考?
Company.java
@Relationship(type = "EMPLOY", direction = Relationship.OUTGOING)
private Set<EmployRel> employeeRel = new HashSet<>();
OR
@Relationship(type = "EMPLOY", direction = Relationship.OUTGOING)
private Set<Employee> employee = new HashSet<>();
Person.java
@Relationship(type = "EMPLOY", direction = Relationship.INCOMING)
private Company company = new Company();
OR
@Relationship(type = "EMPLOY", direction = Relationship.OUTGOING)
private EmployRel employRel = new EmployRel();
那么如何在方向上使用'UNDIRECTED'? –
'UNDIRECTED'是一个语义问题。假设你有一个“PARTNER”关系:你并不关心方向,所以你可以在这种情况下使用'UNDIRECTED'。它将与定向关系一样工作。 – nmervaillie
谢谢,我知道这个方向的语义,对于我的情况,也许你需要阅读我的另一个问题确实,请参阅 - https://stackoverflow.com/questions/46503104/how-to-modeling-this-relation-in- spring-data-neo4j,在这个问题中,公司可以是“投资者”和“被投资人”,所以会有公司 - [:INVESTMENT] - 公司关系,这对我来说真的是无聊的事情。 –