我有一张名为Studentlesson的表,带有由Student_ID和thrensy_id组成的主复合键keylessonpk。我想通过ID获得学生的课程,但是我当然不能将对象传递到路径变量。我非常陌生,春季JPA任何帮助。我的代码供参考:
@Embeddable
public class StudentLessonPK implements Serializable{
private static final long serialVersionUID = 5611658036387185008L;
@Column(name = "Student_Id")
private String Student_Id;
@Column(name = "Lesson_Id")
private String Lesson_Id;
//GETTERS AND SETTERS
public String getStudent_Id() {
return Student_Id;
}
public void setStudent_Id(String student_Id) {
Student_Id = student_Id;
}
public String getLesson_Id() {
return Lesson_Id;
}
public void setLesson_Id(String lesson_Id) {
Lesson_Id = lesson_Id;
}
//CONSTRUCTOR
public StudentLessonPK(String student_Id, String lesson_Id) {
super();
Student_Id = student_Id;
Lesson_Id = lesson_Id;
}
public StudentLessonPK(){
}
}
我的控制器中的不正确获取请求:我想实现/sudenterlesson/{studentId}/{clentId}
之类的东西@RequestMapping(value="/studentslesson/{StudentLessonPK}", method = RequestMethod.GET)
public StudentLesson StudentLessonById(@PathVariable StudentLessonPK id) {
return StudentLessonService.getStudentLesson(id);
}
我的学生服务班:
public StudentLesson getStudentLesson(StudentLessonPK id) {
Optional<StudentLesson> optionalStudentLesson = studentLessonRepository.findById(id);
if(optionalStudentLesson.isPresent()) {
return optionalStudentLesson.get();
}
return null;
}
我的存储库:
public interface StudentLessonRepository extends CrudRepository<StudentLesson, StudentLessonPK> {
}
在您的控制器中,您可以将studentId和centerID定义为两个不同的路径参数,从两个参数中构造一个studentlessonpk对象,然后将其传递给StudentlessService。
。@RequestMapping(value="/studentslesson/{studentId}/{lessonId}", method = RequestMethod.GET)
public StudentLesson StudentLessonById(@PathVariable String studentId, @PathVariable String lessonId) {
StudentLessonPK id = new StudentLessonPK(studentId, lessonId);
return StudentLessonService.getStudentLesson(id);
}