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

如何将节点对象注入 spring mvc 中的服务类?

如何解决如何将节点对象注入 spring mvc 中的服务类?

我对开发和 Spring 框架比较陌生。

我想做的是创建一个小项目,我的公司有生产线,有项目,有员工。此外,我使用 Neo4J 泊坞窗图像来保存所有这些对象。

enter image description here

这是我的项目结构。

这些是我的节点,分别是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 举报,一经查实,本站将立刻删除。