我是Sping Boot 的新手,需要有关一对多Map的帮助。我有两个表,分别称为Course和Instructor。一个讲师有多个课程,而另一个课程只有一个讲师。Course表有四条记录,但讲师ID(讲师的外键)为空。我知道如何在外键中输入数据,同时填写表的其余部分,如下所示:
{
"instructor" : {
"firstName" : "Dave",
"lastName" : "John",
"telephone" : 714523698,
"courses" : [
{
"courseNo" : 1011,
"courseName" :"Network Engineering",
"duration" : "2 years"
},
{
"courseNo" : 1012,
"courseName" :"Internet of Things",
"duration" : "3 years"
}
]
}
但我需要的是一种方法,只需输入courseNo,即可将教师标识输入到正确的课程中。
public class TeachController {
@Autowired
private InstructorRepository instructorRepository;
@Autowired
private CourseRepository courseRepository;
@GetMapping("/findTeachCourse")
public List<Instructor> findTeachCourse(){
return instructorRepository.findAll();
}
@PostMapping("/newTeachCourse")
public Instructor newTeachCourse(@RequestBody TeachRequest teachRequest){
return instructorRepository.save(teachRequest.getInstructor());
}}
Course table
希望这些信息足以帮助我摆脱困境。
1条答案
按热度按时间yyyllmsg1#
您可以使用
@ManyToOne
注解将“课程”表中的“教师标识”列Map到“教师”表。然后,在您的控制器中,您可以使用InstructorRepository通过教师的id查找教师,并设置Course对象的教师属性。