Preencher DTO com posições de uma lista

4 respostas
T

Bom dia.

Estou com o seguinte problema:

Tenho um método que vai me retornar um ArrayList.

Atributos ImpressaoRelatorioInformacaoCursoDTO:

String sigla
 String nomeCurso
 String nomeFormacao
 String tipoNivelEnsino
 String nomeCursoPrograma
 String nomeFormaOrganizacao
 String nomeOferta

Em uma determinada classe tenho um método que retorna uma lista, feita por uma query…até aqui blz.

Depois tenho uma classe que possui um método, que retornará um ArrayList:

public ArrayList<ImpressaoRelatorioInformacaoCursoDTO> obterInfoRelatorioCurso(Long idCurso){
     List relatorioInformacaoCursoDTO =  cursoBuscasService.obterInfoRelatorioCurso(idCurso);
     
     List<ImpressaoRelatorioInformacaoCursoDTO> listaDTO = new ArrayList<ImpressaoRelatorioInformacaoCursoDTO>();

     ImpressaoRelatorioInformacaoCursoDTO infoCurso = new ImpressaoRelatorioInformacaoCursoDTO();

     //Qual a melhor forma de pegar cada posição e preencher meu objeto? Fiz assim:

     infoCurso.sigla = relatorioInformacaoCursoDTO.get(0);
     infoCurso.nomeCurso = relatorioInformacaoCursoDTO.get(1);
     
     //E assim vou preenchendo, pra depois eu jogar meu objeto na listaDTO pra ser retornada...

     listaDTO.add(informaCurso);
     return(listaDTO);

}

Fiz da maneira acima, pegando cada posição da minha lista e jogando pra cada propriedade do meu objeto. É a forma correta? Detalhe, fiz assim mas ta me gerando um erro:

## APLICAÇÃO EM MODO DESENVOLVIMENTO # OCORREU UM ERRO INTERNO # Classe da exceção: class org.codehaus.groovy.grails.web.errors.GrailsWrappedRuntimeException # Mensagem do erro: Index: 1, Size: 1 # Pilha de chamadas: org.codehaus.groovy.grails.web.errors.GrailsExceptionResolver.setStatus(GrailsExceptionResolver.java:103) org.codehaus.groovy.grails.web.errors.GrailsExceptionResolver.resolveException(GrailsExceptionResolver.java:82) org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1097) org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:356) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)

Alguém saberia que tipo de erro é esse?

Obs: Se estiver faltando algum “;”, podem ficar tranquilo que é Grails…ele permite.

4 Respostas

drsmachado

Isso Mensagem do erro: Index: 1, Size: 1
quer dizer que você possui uma lista de 1 posição e está tentando acessar a posição 1 + alguma coisa.
Lembrando que a primeira posição de uma List é a posição 0.

luistiagos

da uma debugada e veja o que seu relatorioInformacaoCursoDTO esta trazendo, provavelmente ele não esta trazendo o nome do curso.

T

Valeu pessoal…mas eu vi qual era o problema aqui. É porque estou colocando uma lista dentro de outra lista. Pra eu pergar o conteúdo de uma posição da minha lista eu deveria fazer da seguinte forma:

informaCurso.sigla = relatorioInformacaoCursoDTO[0][0];
informaCurso.nomeCurso = relatorioInformacaoCursoDTO[0][1];
drsmachado

tiagofla:
Valeu pessoal…mas eu vi qual era o problema aqui. É porque estou colocando uma lista dentro de outra lista. Pra eu pergar o conteúdo de uma posição da minha lista eu deveria fazer da seguinte forma:

informaCurso.sigla = relatorioInformacaoCursoDTO[0][0];
informaCurso.nomeCurso = relatorioInformacaoCursoDTO[0][1];


Vetor, não lista.
Lista é outra coisa.

Criado 7 de maio de 2012
Ultima resposta 7 de mai. de 2012
Respostas 4
Participantes 3