Sql JPA:单表继承可能的性能折衷

Sql JPA:单表继承可能的性能折衷,sql,hibernate,jpa,inheritance,single-table-inheritance,Sql,Hibernate,Jpa,Inheritance,Single Table Inheritance,我有以下MS SQL DB表,其中存储了与学校相关的数据: 高中 @Entity @Table(name = "GradeLevels", schema = "dbo") public class HighSchoolGradeLevel { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "AttendedId", nullable = false) private HighSchoolAttended highSc

我有以下MS SQL DB表,其中存储了与学校相关的数据:

高中
@Entity
@Table(name = "GradeLevels", schema = "dbo")
public class HighSchoolGradeLevel {

@ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "AttendedId", nullable = false)
    private HighSchoolAttended highSchoolAttended;

@OneToMany(mappedBy = "highSchoolGradeLevel")
    @OrderBy("createdDate ASC") 
    private List<HighSchoolCourse> highSchoolCourses = new ArrayList<>(0);

// other fields and getter/setter methods....
}

@Entity
@Table(name = "Courses", schema = "dbo")
public class HighSchoolCourse {

@ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "GradeLevelId", nullable = false)
    private HighSchoolGradeLevel highSchoolGradeLevel;

@OneToMany(fetch = FetchType.EAGER, mappedBy = "highSchoolCourse", cascade={CascadeType.REMOVE, CascadeType.PERSIST})
    @OrderBy("createdDate ASC") 
    private List<HighSchoolCourseGrade> highSchoolCourseGrades = new ArrayList<>(0);

// other fields and getter/setter methods....

}

@Entity
@Table(name = "CourseGrades", schema = "dbo")
public class HighSchoolCourseGrade {

@ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "CourseId", nullable = false)
    private HighSchoolCourse highSchoolCourse;

// other fields and getter/setter methods....

}