Подсчитывать конкретные значения перечисления с помощью JPA, а не вручную - PullRequest
1 голос
/ 04 октября 2019

У меня есть список значений перечисления состояния, которые я сейчас перебираю и использую базовый счетчик для хранения того, сколько в моем списке имеет конкретное значение, которое я ищу. Однако я хочу значительно улучшить это и думаю, что может быть способ использовать какой-то 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...