如何在@Relationship中指定多种关系类型

时间:2016-03-01 17:48:00

标签: neo4j spring-data-neo4j

我有两个节点用户和帐户,它们之间的关系是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)

1 个答案:

答案 0 :(得分:1)

不,您无法向@Relationship提供多种关系类型。您必须在您的实体中独立声明它们:

  @Relationship(type = "rel1", direction= Relationship.OUTGOING)
  Acronym acronymRel1;

  @Relationship(type = "rel2", direction= Relationship.OUTGOING)
  Acronym acronymRel2;

您可以根据一组关系类型编写自定义查询以获取所有缩略语。