JPA, não dá para preencher o return

17 respostas
renatofox89

[size=18]É impossivel levar os dados

Não consigo preencher o return, os dados estão lá, mas no return não está indo.

Metodo:

public Response loadData(
            int action,
            int startIndex,
            Map filteredColumns,
            ArrayList currentSortedColumns,
            ArrayList currentSortedVersusColumns,
            Class valueObjectType,
            Map otherGridParams) {
        
        //SftwPU -> nome que esta no METAINF
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SftwPU");
        EntityManager em = emf.createEntityManager();
        
        ArrayList list = new ArrayList();
        
        Query query = em.createNamedQuery("Usuario.findAll");

        List<Usuario> usuarioList = query.getResultList();
        
        System.out.println("ID: " + usuarioList.get(1).getId());
        System.out.println("Usuário: " + usuarioList.get(1).getNome());

        
        System.out.println("ID: " + usuarioList.get(2).getId());
        System.out.println("Usuário: " + usuarioList.get(2).getNome());

        
        //Precisa retornar uma arraylist cheia de CadUsuariosSistemaVO
        return new VOListResponse(usuarioList, false, list.size());

Dá isso no compilador qd coloco para rodar:

[EL Info]: 2012-10-17 15:18:26.46--ServerSession[telefone removido])--EclipseLink, version: Eclipse Persistence Services - 2.3.2.v20111125-r10461
[EL Info]: 2012-10-17 15:18:26.914--ServerSession[telefone removido])--file:/C:/Sistema Renato/SW/Sftw/build/classes/_SftwPU login successful
ID: 1
Usuário: renato
ID: 2
Usuário: felipe
[/size]

17 Respostas

Hebert_Coelho

PRA QUE COLOCAR IMPOSSIVEL ASSIM?

Se é impossível, por que você está fazendo? A pior atitude que alguém pode ter, é desesperar.

Como assim: “Não consigo preencher o return”?

Rodrigo_Sasaki

bom, instanciando um VOListResponse você não vai obter um ArrayList, é IMPOSSÍVEL MESMO!

acho que você está perdido aí no que quer fazer, o que exatamente você quer retornar?

renatofox89

Hebert Coelho:
PRA QUE COLOCAR IMPOSSIVEL ASSIM?

Se é impossível, por que você está fazendo? A pior atitude que alguém pode ter, é desesperar.

Como assim: “Não consigo preencher o return”?

JPA, não dá para preencher o return

Rodrigo_Sasaki

Essa resposta combinou bastante com o seu avatar.

renatofox89

Preciso retornar uma list para encaixar no VOListResponse preencher uma tabela com os dados que retorna no banco.

Primera vez que uso JPA, eu tinha aprendido à fazer assim, preencher assim:

ArrayList list = new ArrayList();
            CadUsuariosSistemaVO vo = null;

            while (rset.next()) {
                vo = new CadUsuariosSistemaVO();         
                //Seta no Vo:
                vo.setNome(rset.getString(1));
                vo.setNome_pessoa(rset.getString(2));
                //Verifica e seta os nomes:
                vo.setIdioma(this.setaIdioma(rset.getString(3)));
                vo.setNivel(this.setaNivel(rset.getString(4)));
                list.add(vo);
            }

O que sugere?

pmlm

list.size() é zero…

renatofox89

[b]pmlm, eu já tentei, mas não dá certo, não da erro, mas tb não preenche a tabela.

Tá meio indecifravel isso.[/b]

renatofox89

public VOListResponse(List rows,boolean moreRows,int resultSetLength) { this.rows = rows; this.moreRows = moreRows; this.resultSetLength = resultSetLength; }

Rodrigo_Sasaki

renatofox89:
public VOListResponse(List rows,boolean moreRows,int resultSetLength) { this.rows = rows; this.moreRows = moreRows; this.resultSetLength = resultSetLength; }

E qual o problema nesse caso? ele não está retornando esse objeto VOListResponse corretamente?

renatofox89

Então, não está dando certo

é que quando eu passo esse vo, era para ele preencher a tabela grafica miinha, mas n vai.

Sera que estou passando atribuos d+(tem menos campos qd faz o findAll), tem como mudar a classe java para:

não da certo, não consigo extrai nada, sabe o que é?

Rodrigo_Sasaki

Você consegue extrair sim, se não conseguisse, você não imprimiria nada no sysout.

O que você precisa entender é o que você quer retornar. Se você instancia A, você não vai ter List.

Se quer um List tem que instanciar a lista e preenchê-la.

renatofox89

A imagem


renatofox89

Extrai eu sei como faz para passar para um ArrayList, só queria saber se tem como fazer isso direto.

sem precisar fazer um laçoe dar os getts…

Sabe,

Alguem sabe se existe algum jeito mais facil?

Hebert_Coelho

renatofox89:
Extrai eu sei como faz para passar para um ArrayList, só queria saber se tem como fazer isso direto.
Por que você não faz como você sabe no seu método e o faz funcionar? Depois nós ajudaremos você a melhorar o código. [=

renatofox89

Blz então vo fazer aqui, amanhã eu posto.

Hebert_Coelho

renatofox89:
Blz então vo fazer aqui, amanhã eu posto.
Maravilha. Vamos esperar. [=

renatofox89

Consegui fazer de um jeito que dá um pouco de trabalho!

Se alguem souber um modo de otimizar, me fala

public Response loadData(
            int action,
            int startIndex,
            Map filteredColumns,
            ArrayList currentSortedColumns,
            ArrayList currentSortedVersusColumns,
            Class valueObjectType,
            Map otherGridParams) {
        
        //SftwPU -> nome que esta no METAINF
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SftwPU");
        EntityManager em = emf.createEntityManager();
        
        ArrayList list = new ArrayList();
        
        Query query = em.createNamedQuery("Usuario.findAll");

        List<Usuario> usuarioList = query.getResultList();

        CadUsuariosSistemaVO vo;
        
        for(Usuario u : usuarioList){
            vo = new CadUsuariosSistemaVO();
            vo.setId(u.getId());
            vo.setNome(u.getNome());
            vo.setNome_pessoa(u.getNomePessoa());
            vo.setIdioma(this.setaIdioma(u.getIdioma().toString()));
            vo.setNivel(this.setaNivel(u.getNivel().toString()));
            list.add(vo);
        }
        
        //Precisa retornar uma arraylist cheia de CadUsuariosSistemaVO
        return new VOListResponse(list, false, list.size());
Criado 17 de outubro de 2012
Ultima resposta 18 de out. de 2012
Respostas 17
Participantes 4