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

有没有办法获得SDN 4.0中节点的所有标签

秦城
2023-03-14

我想获取属于一个节点的所有标签,如果SDN4.0中有一种方法可以在一个查询中实现这一点吗?

例如,我当前的回购协议如下

Book findById(Long bookId);

@Query("MATCH (n:Book) where id(n)={0} set n:AnotherLabel return n")
Book updateBookLabel(Long bookId);

有没有反正我可以简单地

book.getLabels();

检索此账本节点的所有标签。

这本书的课程是

@NodeEntity
public class Book extends Something {
}

是的,默认情况下,我的Book节点应该有两个标签Book某物。由于我在回购中有一个更新方法来添加另一个标签。无论如何,我可以找回这本书与所有3个标签?

谢啦

共有2个答案

宋俊艾
2023-03-14

是的,这是一个可行的例子

实体

public class Book {
  @Labels
  Set<String> labels= new HashSet<>();
  private Long id;
}

回购

public interface BookRepository extends GraphRepository<Book> 
{
}

var标签将包含一个节点的所有标签,因为它是用@Label注释的,所以您可以执行book。getlabel()或者甚至是setLabel(),如果您愿意的话。

在这个例子中,我使用了Spring引导1.4.0和neo4j社区3.0.4。

方航
2023-03-14

实现这一点的唯一方法是通过自定义查询-

@Query("MATCH (n:Book) where id(n)={0} return labels(n) as labels")
List<String> getBookLabels(Long bookId);

(未经测试)

根据评论更新

要在单个查询中返回标签和节点属性,请使用@QueryResult-

SDN 4.0(无法将自定义查询中的节点和关系映射到查询结果中的域实体):

@QueryResult
public class BookResult {
    Long id;
    Map<String,Object> node;
    List<String> labels;
 }

@Query("MATCH (n:Book) where id(n)={0} return labels(n) as labels, ID(n) as id, {properties: n} as node")
BookResult getBookLabels(Long bookId);

SDN 4.1

 @QueryResult
 public class BookResult {
      Book node;
      List<String> labels;
 }

 @Query("MATCH (n:Book) where id(n)={0} return labels(n) as labels, n as node")
 BookResult getBookLabels(Long bookId);
 类似资料:
  • 问题内容: 在使用Jenkins Docker插件时,可能由于错误而导致无法启动群集。我没有注意,目前有数千个脱机节点无法启动。 底线-是否可以批量删除Jenkin中的节点(从属),清理所有脱机节点甚至删除所有节点?重置Jenkins服务器没有帮助,而且我在Jenkins API中找不到方法。 在我开始编写Selenium脚本之类的东西之前,请感谢任何想法。 非常感谢! 问题答案: 该脚本的注释部

  • 问题内容: 由于某些性能原因,我试图找到一种仅选择所选节点中同级节点的方法。例如, 如果选择了inner1节点,是否可以访问其兄弟节点? 问题答案: 好吧…确定…先拜访父母,再拜访孩子。 或者…使用jQuery: 编辑:Cletus一如既往地鼓舞人心。 我进一步挖掘。这就是jQuery本质上如何获得兄弟姐妹的方式:

  • 问题内容: 我想知道是否有可能以编程方式发现特定API的所有端点。 因此,例如,如果我使用浏览器或curl获取此URL:https : //api.twitter.com/1.1/ 我可能会收到类似以下内容的JSON响应: 当然,Twitter可以选择发布还是不发布这种格式。因此,作为一个附带问题,是否有任何Java或Java库可以自动映射和发布您在控制器中创建的API路由? 问题答案: 由于没有

  • 因为我是在中配置序列化程序的,所以我不能在构造函数参数中传递。

  • 我正在努力学习RCP中的TreeViewer。我为此写了一小段代码。 我的代码哪里有问题? 谢了!

  • 问题内容: 在C#中,我发现了一种非常可爱的方法,该方法使您可以从指定控件中获取所有后代和所有THEIR后代。 我正在寻找JavaFX的类似方法。 我看到了我要使用的类,因为它是派生所有带有孩子的Node类的类。 到目前为止,这是我所拥有的(并且我还没有在Google上通过“ JavaFX从场景中获取所有节点”之类的搜索真正找到任何东西): 那么,如何确定N是否是父母(或从父母继承)呢?我说的对吗