我有两个实体:Group和Student,ManyToMany关系,Group是所有者。
现在,定义一个从JpaRepository扩展的GroupRepository,并希望使用@Query注释声明一个方法,以在给定GroupId的情况下直接获取Student列表。怎么样?
方法的返回值应该是List或Page,只是不知道如何使用查询语言进行定义。
我知道如何获得一个渴望获得该组所有学生的组实体,如下所示:
@Query("select group from Group group left join fetch group.students where group.id=:id")
Group findOneWithEagerRelationships(@Param("id") Long id);
非常感谢您的帮助。
如果您有这样的模型:
@Entity
class Group {
@Id Ling id;
@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
private List<Student> students;
//...
}
@Entity
class Student {
@Id Long id;
@ManyToMany(mappedBy = "groups")
private List<Group> groups;
//...
}
然后,要让所有学生通过小组回购,您可以采用以下方法:
interface GroupRepo extends JpaRepository<Group, Long> {
@Query("select s from Group g join g.students s where g.id = ?1")
Page<Student> getAllStudentsByGroupId(Long groupId, Pageable pageable);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句