У меня есть список значений перечисления состояния, которые я сейчас перебираю и использую базовый счетчик для хранения того, сколько в моем списке имеет конкретное значение, которое я ищу. Однако я хочу значительно улучшить это и думаю, что может быть способ использовать какой-то JPA-запрос в хранилище подкачки и сортировки для достижения той же цели.
Моя текущая версия, которая не так оптимизированакак я хотел бы, выглядит следующим образом.
public enum MailStatus {
SENT("SENT"),
DELETED("DELETED"),
SENDING("SENDING"),
}
val mails = mailService.getAllMailForUser(userId).toMutableList()
mails.forEach { mail ->
if (mail.status === MailStatus.SENT) {
mailCounter++
}
}
С хранилищем JPA подкачки и сортировки есть ли способ вместо этого запросить это и получить счетчик всей почты, которая имеет статус только отправлено?
Я попробовал следующее, но, похоже, получаю все, а не просто статус SENT.
fun countByUserIdAndMailStatusIn(userId: UUID, mailStatus: List<MailStatus>): Long