当前位置: 首页 > 知识库问答 >
问题:

Spring数据Neo4j和查询

梁丘成和
2023-03-14

我试图编写一个返回大量数据(200个节点)的查询。节点非常简单:

public class MyPojo{
    private String type;
    private String value;
    private Long createdDate;

    ...
} 

我最初使用Spring Data Neo4j模板接口,但在返回大约100个节点后发现它非常慢。

public interface MyPojoRepository extends GraphRepository<MyPojo> {
    public List<MyPojo> findByType(String type);
}
public interface MyPojoRepository extends GraphRepository<MyPojo> {
    @Query("MATCH(n:MyPojo) WHERE n.type = {0} RETURN n")
    public List<MyPojo> findByType(String type);
}
"MATCH(n:MyPojo) WHERE n.type = {0} RETURN n, labels(n)"

所以,我的问题是:是否有一种方法可以提供标签作为Cypher查询的一部分,以防止需要再次查询每个节点?或者,除此之外,是否有一种方法可以为SDN提供一个包含标签和属性的节点并将其转换为POJO?

注意:我意识到SDN团队正在未来的版本中完全使用Cypher。到目前为止,很多codebase都使用旧的(而且,我相信,不推荐使用的)REST服务。如果未来有任何工作会影响到这一点,我会非常高兴听到这一点。

共有1个答案

王佐
2023-03-14

您是对的,对于简单的用例来说,它是可以解决的,也应该解决。

不幸的是,当前的API没有将标签作为节点的一部分返回,因此我们必须重写内部工作以生成额外的元信息并正确地返回所有这些。

一种方法是使用return{id:id(n),labels:labels(n),data:n)}作为n来表示完整的表示形式。

不确定我们何时以及如何安排这项工作。请随时将其作为JIRA问题提出,或观看/反对任何相关问题。

 类似资料:
  • 是否有人拥有使用GrailsV3的SpringDataNeo4j(3.3.0)并愿意共享配置? 我想让Web界面工作(按这里:如何启用neo4j webadmin时使用sping-data-neo4j?),但我有点失去了当试图找出什么应该去,作为Grails从扩展它,所示示例从扩展它。

  • 我是neo4j spring数据的新手,我尝试执行的查询不是在我的spring boot应用程序上工作,而是在neo4j web界面上工作。 我在数据库上有3个节点:“Oracle”、“Java”和“Cloud”我正在尝试运行的查询: 因此,使用neo4j web界面,如果我输入“CL”,它将返回“Oracle”和“Cloud”,这是正确的。 使用spring数据,我得到了所有3个结果,这是错误的

  • 我正在使用数据库和。现在,我想导入相当大的数据集,因此我研究了的批插入功能。 经过我的研究,我发现: 用于嵌入式数据库:http://docs.neo4j.org/chunked/stable/batchinsert.html以及使用它的Michael Hunger项目:https://github.com/jexp/batch-import/ REST批处理终结点:http://docs.neo

  • 我有与Spring data neo4j一起工作的Spring服务,我决定将Spring data neo4j从2.2更新到当前版本-3.1.4。释放。所以第一次我更新了neo4j,项目失败了,我更新了Spring版本,不同的版本有不同的例外。这个服务包括在我的前端,我叫它是从网络。所以我不知道什么是最佳配置???配置与maven。这里有pom.xml Spring配置文件 所以每次加载db例外,

  • 我的可见性没有被索引吗?还是我不该这么做?我没有尝试用字符串更改可见性属性,我认为这应该有效,因为我有其他可以成功查询的字符串属性。使用'in'操作符是一个额外的好处! 编辑1:我使用的是spring-data-neo4j2.0.1.release。我试图在单元测试中使用,但是我刚刚意识到在使用默认配置运行服务器时可以工作,但是在单元测试中仍然不能工作。而且,即使在运行服务器时,'IN'子句仍然会

  • 有没有人使用Java API使用GraphAware TimeTree处理Spring数据Neo4J,并能提供一个简单的示例?