0

我在处理 Spring/Hibernate/JPA 时遇到了这个问题。

这是我的问题的大纲。

我在学生表和出勤表之间有 OneToMany 关系。

这是我的实体的构建方式:

@Entity
class Student{
@Id
private Long id;
    @OneToMany(mappedBy = "student",
               cascade = { CascadeType.PERSIST, CascadeType.MERGE,
                           CascadeType.REFRESH })
  private List<Attendance> attendances;
}

@Entity
class Attendance{

  @ManyToOne
  @JoinColumn(name = "id")
 private Student student;
}

现在我想查询所有学生和出席人数(出席人数)。

这是我尝试过的,但没有成功:

select P.id, N from Student s left join s.attendances, IN(s.attendances) as N;

上面的脚本是一个复杂的名为 Query 的一部分,还涉及其他实体,但我有点迷失了让出席人数计入的概念N

任何形式的帮助表示赞赏。

4

1 回答 1

0

您已将其标记为 Hibernate,因此使用 HQL 您应该能够编写:

select student.id, count(student.attendances) from Student as student
于 2013-02-18T19:44:18.103 回答