如何解决如何将节点对象注入 spring mvc 中的服务类?
我对开发和 Spring 框架比较陌生。
我想做的是创建一个小项目,我的公司有生产线,有项目,有员工。此外,我使用 Neo4J 泊坞窗图像来保存所有这些对象。
这是我的项目结构。
这些是我的节点,分别是Employee、Line、Project。
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.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 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 Line {
private String name;
@Id
@GeneratedValue
private long id;
@Relationship(type = "belongs_to",direction = Relationship.Direction.INCOMING)
private Set<Project> projectSet;
}
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.*;
@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);
}
@PostMapping("/line/projects/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);
}
}
我想要做的是使用 POST 请求将员工添加到 {project},其中端点是“/line/projects/{project_name}/employee”。但是,我真的不知道该怎么做。我的一个想法是调用一个 ProjectService 实例并使用 Set 的 add 方法将员工添加到该项目中,但我不能使用
@Autowired
private Project project;
在 ProjectService 类中。当我这样做时,我会出错。
我怎样才能实现我想做的事?
感谢任何帮助。
最好,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。