Eu faço uma chamada a um método que me retorna uma lista de um determinado objeto, porém ao debugar o retorno desse método, essa lista está vindo um Array de Objects. Assim, vem um array de objects, e como eu fiz acesso a 3 tabelas no banco, dentro do array de objects tem 3 objetos. O que eu quero é que esse array venha não como está vindo, mas como um array só cotendo todos os objetos, até porque esses objetos ao atributos da lista que eu quero.Alguém sabe como eu faço isso?
Para mim não esta bem claro o que vc precisa.
Coloca alguns trechos de códigos pra gente dar uma olhada.
Valeu!
Fierodd
O método chamada retorna um array de objects ou um arraylist?
se for o 1 caso o array de objects precisa ser convertido num arraylist e não adicionado a um, caso seja o 2 caso o metodo que vc está chamando não está te devolvendo os dados como deveria e ele terá que ser alterado.
M
malbarbosa
Assim,
eu tenho esse código que retorna um arraylist:
publicList<Funcionalidade>listByUsuario(Usuariousuario){
query=this.entityManager.createQuery("FROM Funcionalidade AS f JOIN f.papeis AS p JOIN p.usuarios AS u WHERE u.id = :idUsuario");query.setParameter("idUsuario",usuario.getId());List<Funcionalidade>funcionalidades=query.getResultList();returnfuncionalidades;}
funcionalidades ai é um arrayList de funcionalidades mesmo.
só que nesse trecho de cima funcionalidades já está como um arraylist de objects contendo três objetos e esses 3 objetos 1 é atributo de funcionalidade, o outro é atributo do atributo de funcionalidade e o terceiro é atributo, do atributo de funcionalidade, acho escrito seria assim.
só que o que eu preciso é que o arrayList venha sendo arrayList de funcionalidades.
Talvez tenha que adapta-la pra trabalhar com mais alguns Alias, mas aqueles JOINs tavam mto esquisitos.
Ta usando Hibernate? Se tiver considere usar Criteria.
Abraços.
M
malbarbosa
Tchello dessa forma que você enviou dá erro.
estou usando JPA.
Tem alguma outra forma que eu possa tentar?
Tchello
Tem, creio que o problema seja a query montada, aqueles JOINs não devem ser usados daquela maneira.
Na maioria das vezes usei criteria, deve-se setar alias pra papeis e usuarios, semelhantemente ao que foi feito com funcionalidade, mas garantindo que o retorno será de objetos do tipo Funcionalidade.
Vamos pesquisar mais sobre EJBQL, HQL, JPAQL, sei la o que QL, etc…
M
malbarbosa
Consegui resolver!!
O problema estava na query mesmo. Estava faltando o SELECT na query. Depois que eu coloquei SELECT f FROM Funcionalidade AS f JOIN f.papeis AS p JOIN p.usuarios AS u WHERE u.id = :idUsuario", o array que retornou foi o que eu desejava.