spring-boot - 如何使用 Spring Boot CRUD API 使用一个 POST 端点在多个表中插入数据
问题描述
如何在多个表中使用单个 POST 端点插入数据。例如有两个表
1. Employee
2. Department
这两个表有主键和外键关系。
如何使用单个 POST 端点在两个表中实现数据插入?
解决方案
好的,我明白你想要什么......你的实体必须看起来像这样......
您必须创建一对一的关系,如下所示:
部门实体:
@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);
}
}
推荐阅读
- java - 如何捕获控制台中显示的断言错误
- javascript - 从一个客户端向另一个 socket.io 发送响应消息时出现问题
- go - Golang 从 openpgp.js 解密 PGP
- sql-server - 寻求对 SQL Server 索引问题的确认
- javascript - 创建一个适用于 vue 和 express 端的 NPM 模块
- c++ - wxGenericDirCtrl 错误“wxTheFileIconsTable 为 nullptr”
- reactjs - 如何在 Material-UI Grid 项目之间应用边距?
- xslt - 忽略每个 XSL 的阻塞
- jdbc - 自定义连接器中 JDBC 驱动程序的 Tableau 驱动程序解析器定义
- raspberry-pi - 在模拟设备(可能是 Azure Hub)上安装 Windows 10 IoT Core