如何解决如何在带有neo4j的spring boot中将一个类映射到另一个类?
我是 Java 和 Spring 框架的新手。我正在开发一个 Neo4j 项目,在该项目中我有带有 docker 的 Neo4j 图像。我的主要目标是创建一个公司节点并使用 neo4j 和 spring boot 将其他节点链接到它。
到目前为止,我没有取得太大进展。我只能在端点 api/company/line/projects 创建项目资源。
像这样:
这是问题所在。我想转到端点 api/company/line/projects/employees 并在此处发送 GET 请求并获取该项目中的员工。但此时此刻我很困惑,我不知道该怎么做。
感谢任何帮助
这是我的课程:
员工类:
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 举报,一经查实,本站将立刻删除。