Image Je suis l'entité suivante: Société et les employés, avec l'annotation Neo4j de données de printemps:relation de données de printemps dans l'entité
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;
......
}
Ensuite, il y a l'entité de relation pour ces entités:Alors comment conserver la référence dans Company
et Person
?
Company.java
@Relationship(type = "EMPLOY", direction = Relationship.OUTGOING)
private Set<EmployRel> employeeRel = new HashSet<>();
OU
@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();
OU
@Relationship(type = "EMPLOY", direction = Relationship.OUTGOING)
private EmployRel employRel = new EmployRel();
Alors, que diriez-vous d'utiliser 'UNDIRECTED' dans la direction? –
'UNDIRECTED' est une question de sémantique. Disons que vous avez une relation PARTNER: vous n'avez pas vraiment d'importance dans la direction, vous pouvez donc utiliser UNDIRECTED dans ce cas. Cela fonctionnera de la même manière qu'une relation dirigée. – nmervaillie
Merci, je sais cette direction sémantique, pour mon cas, peut-être vous avez besoin de lire mon autre question en effet, s'il vous plaît voir - https://stackoverflow.com/questions/46503104/how-to-modeling-this-relation-in- spring-data-neo4j, dans cette question, la société peut être l '«investisseur» et «Investee», donc aura la société - [: INVESTISSEMENT] - Relation d'entreprise, ce sont vraiment les choses ennuyeuses pour moi. –