首页 > 解决方案 > 如何使用 Spring Boot CRUD API 使用一个 POST 端点在多个表中插入数据

问题描述

如何在多个表中使用单个 POST 端点插入数据。例如有两个表

1. Employee
2. Department 

在此处输入图像描述

这两个表有主键和外键关系。

如何使用单个 POST 端点在两个表中实现数据插入?

标签: spring-bootspring-data-jpa

解决方案


好的,我明白你想要什么......你的实体必须看起来像这样......

您必须创建一对一的关系,如下所示:

部门实体:

@Entity
@Table
@Data
public class Department {

   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   private Long id;
   private String name;
   private String description;
}

员工实体:

@Entity
@Table
@Data
public class Employee {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String name;
    private String email;
    private String address;
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "department_id", referencedColumnName = "id")
    private Department department;
}

而且您可以像这样在启动时添加数据:

@Component
public class DBSeeder implements CommandLineRunner {
    @Autowired
    private EmployeeRepository repository;

    @Override
    public void run(String... args) throws Exception {
        Department dep1 = new Department();
        dep1.setName("Demolition");
        dep1.setDescription("Do demo");

        Employee emp1 = new Employee();
        emp1.setName("John Rambo");
        emp1.setEmail("john.rambo@demolition.com");
        emp1.setAddress("Demolition Av. 5");
        emp1.setDepartment(dep1);

        this.repository.save(emp1);


    }
 }

推荐阅读