spring-data-neo4j Query Result

使用spirng-data-neo4j中的手写query,因为有些地方的语法比较复杂一直纠结返回数据的结构,一直用list 和 map拼,后来发现内置有一个Result类

举个例子

import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.stereotype.Repository;
import org.neo4j.ogm.model.Result;
@Repository
public interface AllRepository extends Neo4jRepository{
    @Query(
    "MATCH (user:jhi_user {login:$0})"+
    "CALL apoc.path.expand(user,'<|>','*',0,-1)"+
    "YIELD path as paths RETURN paths, length(paths) AS hops ") 
    Result findOneByLogins(String name);
}

这样直接使用Result接就可以了

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要创建一个Spring Boot项目,并添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-neo4j</artifactId> </dependency> ``` 接下来,需要定义实体类和Repository接口。例如,我们要创建一个搜索系统,需要定义一个节点实体类`SearchNode`和一个关系实体类`SearchRelation`,并分别创建对应的Repository接口`SearchNodeRepository`和`SearchRelationRepository`。 ```java @NodeEntity public class SearchNode { @Id @GeneratedValue private Long id; @Indexed private String title; @Indexed private String content; @Relationship(type = "RELATED_TO", direction = Relationship.OUTGOING) private Set<SearchRelation> relations = new HashSet<>(); // getters and setters } @RelationshipEntity(type = "RELATED_TO") public class SearchRelation { @Id @GeneratedValue private Long id; @StartNode private SearchNode fromNode; @EndNode private SearchNode toNode; // getters and setters } public interface SearchNodeRepository extends Neo4jRepository<SearchNode, Long> { List<SearchNode> findByTitleContainingIgnoreCase(String title); } public interface SearchRelationRepository extends Neo4jRepository<SearchRelation, Long> { List<SearchRelation> findByFromNode(SearchNode fromNode); } ``` 在上述代码中,`SearchNode`和`SearchRelation`分别用`@NodeEntity`和`@RelationshipEntity`注解标记为节点和关系实体类。`SearchNode`中包含了`@Relationship`注解,用于描述和`SearchRelation`的关系,其中`type`表示关系类型,`direction`表示关系方向。`SearchNodeRepository`和`SearchRelationRepository`继承自`Neo4jRepository`,可以使用Spring Data Neo4j提供的各种查询方法。 接下来,在`application.properties`文件中配置Neo4j数据库连接信息: ```properties spring.data.neo4j.uri=bolt://localhost:7687 spring.data.neo4j.username=neo4j spring.data.neo4j.password=123456 ``` 最后,可以在Controller中使用上述Repository接口来实现搜索功能,例如: ```java @RestController public class SearchController { @Autowired private SearchNodeRepository searchNodeRepository; @GetMapping("/search") public List<SearchNode> search(@RequestParam String keyword) { return searchNodeRepository.findByTitleContainingIgnoreCase(keyword); } } ``` 在上述代码中,通过`searchNodeRepository.findByTitleContainingIgnoreCase(keyword)`方法来查询包含关键词的节点信息。可以根据具体需求,使用更复杂的查询方法来实现更丰富的搜索功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值