Neo4j OGM-无效过滤器。setRelationshipDirection()

Neo4j OGM-无效过滤器。setRelationshipDirection(),neo4j,neo4j-ogm,Neo4j,Neo4j Ogm,我尝试用以下代码加载整个对象(及其层次结构): final Filter filter = new Filter (this.identity.name(),ComparisonOperator.EQUALS, identity); filter.setRelationshipDirection(Relationship.OUTGOING); final Filters filters = new Filters (filter); final Collection<T>

我尝试用以下代码加载整个对象(及其层次结构):

final Filter filter = new Filter (this.identity.name(),ComparisonOperator.EQUALS, identity);
filter.setRelationshipDirection(Relationship.OUTGOING);     
final Filters filters = new Filters (filter);
final Collection<T> values = ogmSession.loadAll(this.classType,filters , -1);
if (values != null){
    rvalue = values.iterator().next();
}
而不是类似的内容(关系方向在最后一个匹配子句中):

我是错过了什么还是一只虫子? 谢谢

查询具有以下依赖项的Neo4j 3.2 CE:

<parent>
    <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.4.RELEASE</version>
</parent>
<dependency>
    <groupId>org.neo4j.driver</groupId>
    <artifactId>neo4j-java-driver</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-ogm-core</artifactId>         
       <version>2.1.3</version>         
</dependency>
<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-ogm-bolt-driver</artifactId>
    <version>2.1.3</version>            
</dependency>

org.springframework.boot
spring启动程序父级
1.5.4.1发布
org.neo4j.driver
neo4j java驱动程序
1.3.1
org.neo4j
neo4j ogm核
2.1.3         
org.neo4j
neo4j ogm螺栓驱动器
2.1.3            

过滤器API对此不是很清楚

setRelationshipDirection
(和
setRelationshipType
)与嵌套属性上的筛选器匹配相关。最后一个匹配总是
p=(n)-[*0..]-(m)
,以加载所有相关节点(但也可以看到这一点)

它也会根据域模型自动设置。例如:

Filter filter = new Filter("itemName", "item1");
filter.setNestedPropertyName("items");
filter.setNestedPropertyType(Item.class);
session.loadAll(User.class, filter);
T rvalue = ogmSession.queryForObject(this.classType, 
  "MATCH (n:`Procedure`) WHERE n.`name` = { `procedureName` } "+ 
  "WITH n MATCH p=(n)-[*0..10]->(m) RETURN p, ID(n)", Values.parameters("procedureName",identity).asMap());
将导致

MATCH (n:`User`) MATCH (m0:`Item`) 
WHERE m0.`itemName` = { `items_itemName_0` } 
MATCH (n)-[:`HAS_ITEM`]-(m0) 
WITH n 
MATCH p=(n)-[*0..1]-(m) // provide depth to change 1 to something else
RETURN ....
当前的API支持Spring Data Neo4j中的派生查找程序,使用自定义查询(还允许您查看部分水合实体)可能更容易、更可读。

Ok,使用queryForObject方法解决,例如:

Filter filter = new Filter("itemName", "item1");
filter.setNestedPropertyName("items");
filter.setNestedPropertyType(Item.class);
session.loadAll(User.class, filter);
T rvalue = ogmSession.queryForObject(this.classType, 
  "MATCH (n:`Procedure`) WHERE n.`name` = { `procedureName` } "+ 
  "WITH n MATCH p=(n)-[*0..10]->(m) RETURN p, ID(n)", Values.parameters("procedureName",identity).asMap());

感谢所有人。

你们有双向关系吗?也就是说:
(n)-->(m)
(n)是的,我有这样的东西:
(:Procedure)-[:ROUTE_TO]->(:Task)-->(:Sink)