以下は、A
(UserN) とB
(UserRoleN) をオブジェクトとするモデルです。
@NodeEntity()
public class UserN
{
@GraphId
private Long id;
@Relationship(type = "hasRole", direction = Relationship.OUTGOING)
private List<UserRoleN> role;
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
public void setRole(List<UserRoleN> role) {
this.role = role;
}
public List<UserRoleN> getRole() {
return role;
}
}
@NodeEntity()
public class UserRoleN
{
@GraphId
private Long id;
private String name;
public Long getName() {
return version;
}
public void setName(String name) {
this.name = name;
}
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
}
データベースでは、次のグラフ構造があります。
A->B
A のロード中session.load(A.class, id, 1)
に、合計 2 つの B オブジェクトが A オブジェクトの下にロードされます。このオブジェクトでは、B の ID の 1 つが null であり、他の B オブジェクト ID が neo4j によって生成されます。
データベースに B オブジェクトが 1 つしかない場合に重複 B がロードされる理由を理解できません。