我有两个节点用户和帐户,它们之间的关系是25个关系中的任何一个。 我的查询是
MATCH (u:User)-[r:rel1|rel2|rel3|rel4]->(a:Account) WHERE u.login_id=~('(?i).*'+{fulltextsearch}+'.*') RETURN u as User,r as acronym
我的用户pojo是
public class User{
@GraphId
private Long id;
String fulltextsearch;
String user_id;
String status;
//@Relationship(type = "rel1", direction= Relationship.OUTGOING)
Acronym acronym;
public Acronym getAcronym() {
return acronym;
}
private Set<Account> accounts;
public User() {
}
public String getUser_id() {
return user_id;
}
public String getStatus() {
return status;
}
public String getFulltextsearch() {
return fulltextsearch;
}
public Set<Account> getAccounts() {
return accounts;
}
public void setAccounts(Set<Account> accounts) {
this.accounts = accounts;
}
}
我很困惑地写了我的用户pojo与多个relatioships。 我可以通过OR给予@Relatioship多次关联。
喜欢这个@Relationship(type = "rel1 | rel2", direction= Relationship.OUTGOING)
答案 0 :(得分:1)
不,您无法向@Relationship
提供多种关系类型。您必须在您的实体中独立声明它们:
@Relationship(type = "rel1", direction= Relationship.OUTGOING)
Acronym acronymRel1;
@Relationship(type = "rel2", direction= Relationship.OUTGOING)
Acronym acronymRel2;
您可以根据一组关系类型编写自定义查询以获取所有缩略语。