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)