我正在使用@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

最佳答案

问题是您获取实体的ID,但希望实体处于循环中。

您需要以字符串列表的形式获取查询结果。

但是正确的查询是:

@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
  }
});

10-05 23:54