如何在数组中循环DTO以获取结果arrayList?

时间:2019-06-21 08:44:57

标签: java spring spring-boot jpa

我是Java和Spring的新手
如何循环/获取结果

[
  WhatsappContatcsDTO(whatsappid = 11111111111, name = John Dee), 
  WhatsappContatcsDTO(whatsappid = 16315551234, name = Kerry Fisher)
]

因为我通过@Query从查询jpa得到了结果?
我确实想从那些结果查询中获取结果对象

我喜欢在我的服务器上获得结果:

[
 { name: "John Dee", whatsappid: "11111111111"},
 { name: "Kerry Fisher", whatsappid: "16315551234"} 
]

这是我的服务:

public List<WhatsappContactVO> allContacts() {
    List<WhatsappContactVO> finalResult = new ArrayList<>();

    List<WhatsappChat> resultPerKey = whatsappChatRepository.findAllContact();
    for(WhatsappChat data: resultPerKey) {
        WhatsappContactVO result = modelMapper.map(resultPerKey, WhatsappContactVO.class);

        finalResult.add(result);
    }

    return finalResult;
}

3 个答案:

答案 0 :(得分:1)

创建Converter,将您的WhatsappChat转换为WhatsappContactVO,如下例所示。

    @Component
    public class WhatsappContactVOConvertor implements Converter<WhatsappContactVO, WhatsappChat> {
    /**
     * {@inheritDoc}
     */
    @Override
    public WhatsappContactVO convert(final WhatsappChat whatsappChat) {
        final WhatsappContactVO whatsappContactVO = new WhatsappContactVO();
        whatsappContactVO.setWhatsappid(whatsappChat.getwhatsappid());
        whatsappContactVO.setName(whatsappChat.getName());

        return whatsappContactVO;
    }
 }

初始化下面的conversionservice。

@Autowired
private ConversionService mvcConversionService;

软件包必须的Spring类

  

org.springframework.core.convert

现在,您必须按照以下方法使用此mvcConversionService将WhatsappChat转换为WhatsappContactVO

public List<WhatsappContactVO> allContacts() {
    List<WhatsappContactVO> finalResult = new ArrayList<>();

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

      finalResult = resultPerKey.stream().map(result-> mvcConversionService.convert(result, WhatsappContactVO.class))
                        .collect(Collectors.toList());


    return finalResult;
}

答案 1 :(得分:0)

 Class A
       {
       private String name;
       private String whatsappid;
       }
       List<WhatsappContatcsDTO> exList=dao.getInformation();
       List<A> newList=exList.stream().map(e->Converter.convert(ex)).collect(Collectors.toList());
String json=DTOToJsonConverter.convertDTOToJsonString(newList);
    public class DTOToJsonConverter 
{
    public static String convertDTOToJsonString(List<A> list) {
        Gson gson = new Gson();
        String json = gson.toJson(list);
        return json;
    }

从DTO列表中返回JSON

答案 2 :(得分:0)

您可以将Modelmapper与TypeToken一起使用。

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

List<WhatsappContactVO> finalResult = new ArrayList<>();

finalResult = new ModelMapper() .map(resultPerKey,new TypeToken<List<WhatsappContactVO> >(){}.getType());