【发布时间】:2016-07-08 17:10:04
【问题描述】:
我有一个自我关系(一个员工可以向一个经理汇报,一个经理可能有很多员工)如下:
@NodeEntity
public class Employee {
@GraphId
private Long id;
private String name;
private String sn;
private String mail;
public Employee() {
super();
}
public Employee(String name, String sn, String mail) {
super();
this.name = name;
this.sn = sn;
this.mail = mail;
}
@Relationship(type="REPORT_TO", direction=Relationship.OUTGOING)
private Employee manager;
@Relationship(type="REPORT_TO", direction=Relationship.INCOMING)
private Set<Employee> staffs = new HashSet<>();
...
}
我使用 REST API 作为我的应用程序的接口。当我尝试使用session.loadAll(Employee.class, 0) 返回所有员工时,似乎一切正常,但不会显示任何经理或员工信息。另一方面,如果我使用session.loadAll(Employee.class, 0),则会返回许多深度的Employee。
例如,如果员工 A 向员工 B 报告,即。 B 是 A 的经理。深度 0 的结果是:
{
"_embedded" : {
"employees" : [ {
"name" : "B",
"sn" : "10001",
"mail" : "B@test.com",
"manager" : null,
"staffs" : [ ],
}, {
"name" : "A",
"sn" : "10000",
"mail" : "A@test.com",
"manager" : null,
"staffs" : [ ],
} ]
}
...
}
虽然深度 1 的结果是:
[{"id":9,"name":"A","sn":"10000","mail":"A@test.com","manager":{"id":8,"name":"B","sn":"10001","mail":"B@test.com","manager":null,"staffs":[{"id":9,"name":"A","sn":"10000","mail":"A@test.com","manager":{"id":8,"name":"B","sn":"10001","mail":"B@test.com","manager":null,"staffs":[{"id":9,"name":"A","sn":"10000","mail":"A@test.com","manager":{"id":8,"name":"B","sn":"10001","mail":"B@test.com","manager":null,"staffs":[{"id":9,"name":"A","sn":"10000","mail":"A@test.com","manager":{"id":8,"name":"B","sn":"10001","mail":"B@test.com","manager":null,"staffs":[{"id":9,"name":"A","sn":"10000","mail":"A@test.com","manager":{"id":8,"name":"B","sn":"10001","mail":"B@test.com","manager":null,"staffs":[{"id":9,"name":"A","sn":"10000","mail":"A@test.com","manager":{"id":8,"name":"B","sn":"10001","mail":"B@test.com","manager":null,"staffs":[{"id":9,"name":"A","sn":"10000","mail":"A@test.com","manager":{"id":8,"name":"B","sn":"10001","mail":"B@test.com","manager":null,"staffs":[{"id":9,"name":"A","sn":"10000","mail":"A@test.com","manager":{"id":8,"name":"B","sn":"10001","mail":"B@test.com","manager":null,"staffs":[{"id":9,"name":"A","sn":"10000","mail":"A@test.com","manager":{"id":8,"name":"B","sn":"10001","mail":"B@test.com","manager":null,"staffs":[{"id":9,"name":"A","sn":"10000","mail":"A@test.com",...
我该如何处理这个案子?谁能给我一些建议,拜托。
【问题讨论】:
-
这是 OGM loadAll 查询的结果还是通过您的 rest api 序列化的结果 Employee?
标签: rest neo4j spring-data-neo4j neo4j-ogm