HQL:来自具有多对多关系的多个实体的数据

时间:2015-08-17 17:51:13

标签: java json hibernate

我有3个具有多对多关系的实体。例如ClassStudentSubject
有两个关系表/实体ClassStudentStudentSubject。表有照顾这种关系。 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"

0 个答案:

没有答案