我在下面提供了这些实体,我想执行一些查询,但是我不确定如何在JPA中实现。
School.java
@Data
@Builder
public class School {
private String schoolName;
private int schoolId;
private List<Grade> grades;
}
Grade.Java
@Data
@Builder
public class Grade {
private String grade;
private int gradeId;
private List<Student> students;
}
Student.java
@Data
@Builder
public class Student {
private String studentName;
private int studentId;
private List<Subject> subjects;
}
Subject.java
@Data
@Builder
public class Subject {
private String subjectName;
private int subjectId;
}
我需要执行以下查询:
如何实现?
答案 0 :(得分:0)
首先,请稍微进行一下JPA documentation。寻找Native Queries
。
例如第一个:
1)按schoolId获取所有学生
@Query("SELECT s FROM Student s WHERE s.school_id = :schoolId")
List<Student> findStudentsBySchoolId(@Param("schoolId") Long schoolId);
考虑到您有以下情况:
School
中Student
与映射列schoolId
的映射。JPARepository
。也请注意
List<Student> findBySchool_SchoolId(Long id);
在Java
中用下划线命名您的方法不是一个好主意。 See this