1 package model.repository;
2
3 import model.entity.Section;
4
5 import javax.persistence.EntityManager;
6 import javax.persistence.PersistenceContext;
7 import java.io.Serializable;
8 import java.time.Instant;
9 import java.util.List;
10
11
12
13
14
15 public class SectionRepository implements Serializable {
16
17 @PersistenceContext
18 protected EntityManager em;
19
20
21
22
23
24 public List<Section> getMostFollowedSections(){
25 return em.createQuery("from Section s order by follows.size desc", Section.class).getResultList();
26 }
27
28
29
30
31
32
33 public List<Section> getMostFollowedSections(Instant after){
34 return em.createQuery(
35 "select s from Section s right join s.follows f where f.followDate >= :after " +
36 "group by s " +
37 "order by count(f) desc", Section.class)
38 .setParameter("after",after).getResultList();
39 }
40 }