@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
}
我只需要在user
和email = "abc"
加载firstName="xyz"
个对象。
我使用的是spring-data-neo4j 4.2.3.RELEASE。
如何有效地对此查询使用ogm过滤器(我不需要本机查询)?
答案 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));