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