Измените ваш запрос на что-то вроде этого:
@Query("select t.event.id, count(t.id) from Ticket t where t.event.seat = ?1 and t.event.date >= ?2 group by t.event.id order by count(t.id) desc")
List<?> getEventCount(Boolean seatTaken, Date eventDate);
Я изменил запрос так, чтобы в качестве места использовался логический параметр (для повторного использования, если вы хотите найти места, которые не были заняты), и добавил вDate
параметр.
Затем вычислите дату месяца назад следующим образом:
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, -1);
Date date = cal.getTime();
И, наконец, реализуйте новый метод:
List<?> results = repo.getEventCount(true, date);
Чтобы создать службуВесной урок и все это вместе попробуйте что-то вроде:
@Service
public class TicketService {
@Autowired
private TicketRepository repo;
public List<?> getTicketEventCount() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, -1);
Date date = cal.getTime();
List<?> results = repo.getEventCount(true, date);
return results;
}
}