我有3个具有多对多关系的实体。例如Class
,Student
和Subject
。
有两个关系表/实体ClassStudent
和StudentSubject
。表有照顾这种关系。 ClassStudent
类看起来像这样:
public class ClassStudent{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
@NotNull
private Long classId;
@Column(nullable = false)
@NotNull
private Long studentId;
@JsonIgnore
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "classId", updatable = false, insertable = false)
private Class class
@JsonIgnore
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "studentId", updatable = false, insertable = false)
private Student student;
}
StudentSubject
类也采用相同的模式。
我正在尝试写一个查询,每个班级,它的学生和每个学生的科目。
喜欢的东西
[
{
"class":{
"id":1,
"name":Maths
},
"studentDetails":[ {
"Student":{
"id":1
"name":"First Name"
},
"Subjects": [{
{
"id":1,
"code":xxx
},
{
"id":2,
"code":yy
}
}]
}]
我尝试编写基本查询,但根本不起作用。
SELECT c, cs.student, ss.subject FROM ClassStudent cs, Class c, Student s, StudentSubject ss, Subject subject"
+ " LEFT JOIN cs.student student"
+ " LEFT JOIN ss.subject subject"