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] - 公司關係,這對我來說真的是無聊的事情。 –