Neo4j-ogm“过滤”以通过某些父属性及其子属性搜索父实体

时间:2017-06-13 11:10:54

标签: neo4j neo4j-ogm

@NodeEntity
public class User {
    private Long id,
    private String email,
    @Relationship(type = "hasOne", direction = Relationship.OUTGOING)
    private Profile profile
}

@NodeEntity
    public class Profile {
    private Long id;
    private String firstName
}

我只需要在useremail = "abc"加载firstName="xyz"个对象。

我使用的是spring-data-neo4j 4.2.3.RELEASE。

如何有效地对此查询使用ogm过滤器(我不需要本机查询)?

2 个答案:

答案 0 :(得分:0)

您可以使用Spring Data derived finders

UserRepository中创建一个这样的方法:

User findByEmailAndProfileFirstName(String email, String firstName);

请注意,在派生的查找程序中只能使用1级嵌套。

答案 1 :(得分:0)

您可以按以下方式使用嵌套的过滤器: Filter emailFilter = new Filter("email", ComparisonOperator.EQUALS, "krishna@abc.in"); Filter firstNameFilter = new Filter("firstName", ComparisonOperator.EQUALS, "krishna"); firstNameFilter.setNestedPath({ new Filter.NestedPathSegment("profile", Profile.class); }); return session.loadAll(User.class, emailFilter.and(firstNameFilter));