как сделать проекцию в Spring-Data-JPA - PullRequest
0 голосов
/ 23 июня 2019

Я использую @Query и получаю результат, подобный следующему: [16315551234, 11111111111] этот результат получен из столбца с типом данных String. Я попытался выполнить цикл с помощью For и forEach, но получил ошибку, поскольку тип данных не может быть приведенк домену у меня есть

как зациклить правильный путь для этого результата из @Query?Я новичок в Java, и мне очень нравится объяснять это:)

мой запрос:

@Query("SELECT DISTINCT W.whatsappid FROM WhatsappChat W")
List<WhatsappChat> findAllContact();

на моем @Service

List<WhatsappChat> resultPerKey = whatsappChatRepository.findAllContact();

при входе в системурезультат: это как то так ==> [16315551234, 11111111111]

WhatsappChat is my @Entity / domain

1 Ответ

1 голос
/ 23 июня 2019

Проблема в том, что вы выбираете идентификаторы объекта, но ожидаете, что объект находится в цикле.

Вам необходимо получить результат запроса в виде списка строк.

Но правильный запрос:

@Query("SELECT DISTINCT W.whatsappid  FROM WhatsappChat W")
List<String> findAllContact();

И для итерации по списку вы можете сделать:

List<String> ids = respoitory.findAllContact();
ids.forEach(new Consumer<String>() {
  @Override
  public void accept(String s) {
    //use String
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...