如何在 JPA 中加载一对多关系实体,其中包含子实体的计数



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

这是我问题的大纲。

我在学生和考勤表之间有一对多的关系。

以下是我的实体的构建方式:

@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的概念。

感谢

任何形式的帮助。

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

select student.id, count(student.attendances) from Student as student

相关内容

  • 没有找到相关文章

最新更新