Nay*_*ish 6 neo4j spring-data-neo4j spring-data-neo4j-4 neo4j-ogm
我在使用时查询深度2时出现超时.我session.load()正在使用Neo4j OGM 1.1.3(尝试从Spring Data Neo4j 3.4迁移).尝试加载Node对象
class Node {
Long id;
String name;
@Relationship(type="NodeToCategory")
Category category;
@Realtionship(type="NodeToChildNode")
Node node
}
class Category {
Long id;
String name;
String color;
Date createdAt;
}
Run Code Online (Sandbox Code Playgroud)
连接到我的节点的类别非常受欢迎(20,000个节点具有相同的类别),当我使用运行时session.load(Node.class, 1L, 2),请求超时.它是否可以尝试查询该类别的所有关系(即使我的Java中的模型类别忽略了这种关系)?
我期望它加载的只是:
|My Node
| |category
| |child node
| | | category
| | | child node
Run Code Online (Sandbox Code Playgroud)
这不是一个非常繁重的请求,不应该超时(除非它加载不需要的关系.
有没有办法告诉只有负载某些关系深入?
例如,我想加载一个树的10个级别,但我的树上的其他信息(如类别,角色不是真正的树节点,但只是代表更多的信息)我只想加载它们没有他们的关系.所以我想加载所有Node对象,只在没有关系的情况下加载其他对象.
UPDATE
发现两个似乎解决这些问题的未解决问题:
小智 0
此问题已在 OGM 3.0 中通过基于架构的加载得到解决。
基于模式的加载意味着 OGM 现在会查看您的对象域模型,并且仅获取模型中真正存在的内容,而不是指定深度内的所有内容。
在您的情况下,由于Category不链接回Node,新版本不会加载这些许多不需要的节点,从而带来巨大的性能改进。