![](/img/trans.png)
[英]Custom @Query for JpaRepository. Table name shown as red colored
[英]Complicated query with jparepository. Three tables join
我想用另一種方式過濾實體:獲得10個不同的頂級學科,這些學科按學生在某個時間段內的學習次數(出勤率)排序。
List<Session> sessions;
//雙向 List<Student> students;
//雙向 因此,學生僅對Session並不了解紀律。 我想使用Spring JpaRepository編寫如下內容:
List<Discipline> findTop10DisciplinesDistinctOrderBySessionsStudentsCountAndBySessionsBetween(Date from, Date to);
但是有一些限制。 這對我沒用
找不到學生類型的財產計數! 遍歷的路徑:Discipline.sessions.students。
查詢看起來像這樣(mysql):
select d.*
from session as ses
inner join
(select st.*
from student as st
inner join session as ses on ses.id = st.session_id
where ses.time > (curdate() - interval 30 day)
group by st.session_id
order by count(st.id) desc
limit 10) as st2
on ses.id = st2.session_id
inner join discipline as d on ses.discipline_id = d.id
但是如何將此查詢添加到jpa存儲庫?
派生查詢(從方法名稱創建的查詢)不適合您的用例。 即使可行,也將導致笨拙的方法名稱。 使用帶有JPQL或SQL查詢的@Query
代替。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.