微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在带有neo4j的spring boot中将一个类映射到另一个类?

如何解决如何在带有neo4j的spring boot中将一个类映射到另一个类?

我是 Java 和 Spring 框架的新手。我正在开发一个 Neo4j 项目,在该项目中我有带有 docker 的 Neo4j 图像。我的主要目标是创建一个公司节点并使用 neo4j 和 spring boot 将其他节点链接到它。

到目前为止,我没有取得太大进展。我只能在端点 api/company/line/projects 创建项目资源。

像这样:

enter image description here

这是问题所在。我想转到端点 api/company/line/projects/employees 并在此处发送 GET 请求并获取该项目中的员工。但此时此刻我很困惑,我不知道该怎么做。

感谢任何帮助

这是我的课程:

enter image description here

员工类:

package com.thebman.neo4jstudy.node;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.neo4j.ogm.annotation.GraphId;
import org.neo4j.ogm.annotation.NodeEntity;
import org.springframework.data.neo4j.core.schema.GeneratedValue;
import org.springframework.data.neo4j.core.schema.Id;
import org.springframework.data.neo4j.core.schema.Node;
import org.springframework.data.neo4j.core.schema.Relationship;

@Data
@AllArgsConstructor
@NoArgsConstructor
@NodeEntity
public class Employee {
    @Id
    @GeneratedValue
    private Long Id;
    private String name;
    private int age;

}

项目类:

package com.thebman.neo4jstudy.node;

import com.sun.istack.internal.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.neo4j.ogm.annotation.NodeEntity;
import org.springframework.data.neo4j.core.schema.GeneratedValue;
import org.springframework.data.neo4j.core.schema.Id;
import org.springframework.data.neo4j.core.schema.Relationship;

import java.util.Set;

@Data
@AllArgsConstructor
@NoArgsConstructor
@NodeEntity
public class Project {
    @Id
    @GeneratedValue
    private Long entityId;
    private String name;
    private String location;

    @Relationship(type = "works_for",direction = Relationship.Direction.INCOMING)
    private Set<Employee> employee;

}

和控制器类:

package com.thebman.neo4jstudy.controller;

import com.thebman.neo4jstudy.node.Line;
import com.thebman.neo4jstudy.node.Project;
import com.thebman.neo4jstudy.node.Employee;
import com.thebman.neo4jstudy.service.Lineservice;
import com.thebman.neo4jstudy.service.ProjectService;
import com.thebman.neo4jstudy.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping(value = "/api/company")
public class CompanyController {
    @Autowired
    private ProjectService projectService;

    @Autowired
    private PersonService personService;

    @Autowired
    private Lineservice lineservice;


    @PostMapping("/line/projects")
    ResponseEntity saveProject(@RequestBody Project project) {
        return new ResponseEntity(projectService.saveProject(project),HttpStatus.CREATED);
    }

    @GetMapping("/line/projects")
    ResponseEntity getProjects() {
        return new ResponseEntity(projectService.getProjects(),HttpStatus.OK);
    }

    @DeleteMapping("/line/projects/{project_name}")
    ResponseEntity deleteProject(@PathVariable String project_name) {
        projectService.deleteProject(project_name);
        return new ResponseEntity(HttpStatus.OK);
    }

    @GetMapping("/line/projects/{project_name}/employee")
    ResponseEntity getEmployee(@PathVariable String project_name) {

        return new ResponseEntity(projectService.getEmployee(project_name),HttpStatus.CREATED);
    }

    @PostMapping("/line/projects/{project_name}/employee")
    ResponseEntity saveEmployee(@RequestBody Employee employee) {

        return new ResponseEntity(personService.savePerson(employee),HttpStatus.CREATED);
    }

    @PostMapping("/line")
    ResponseEntity saveLine(@RequestBody Line line) {
        return new ResponseEntity( lineservice.saveLine(line),HttpStatus.CREATED);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。