Duvida em converter Object[] para objeto

10 respostas
P

na query abaixo gostaria de saber como faço para converter :
itens.get(0) para o objeto Estoque_Item

itens.get(1) para o objeto Modelo

alguem poderia me ajudar …

abs

StringBuffer jhl = new StringBuffer();
			jhl.append("SELECT item , modelo " );
			jhl.append(" FROM estqoeu_item item ,");
			jhl.append("      dispositivo dis     , ");
			jhl.append("      modelo modelo     ");
			jhl.append(" where item.dis   = dis.id");
			jhl.append(" and   modelo.id  = dis.model");
			
			List<Object[]>  itens = imsDBMng.getManager().createQuery(jhl.toString()).getResultList();

			for (int i = 0; i < itens.size(); i++) {
				
				Object[] item = (Object[])itens.get(0); ?????

			}

10 Respostas

davidbuzatto

Tem coisa errada ai num tem não?
Vc está usando um resultset para obter os dados?

P

pois quero uma lista de tanto do objeto item como modelo ???

não é assim como seria então ???

P

tentei o codigo abaixo e deu erro java.lang.ClassCastException: [Ljava.lang.Object;

na linha Estoque_item[] item = (Estoque_item[])itens.get(0);

o que fazer ???

StringBuffer jhl = new StringBuffer();   
jhl.append("SELECT item , modelo " );   
jhl.append(" FROM estqoeu_item item ,");   
jhl.append("      dispositivo dis     , ");   
jhl.append("      modelo modelo     ");   
jhl.append(" where item.dis   = dis.id");   
jhl.append(" and   modelo.id  = dis.model");   

List<Object[]>  itens = em.getManager().createQuery(jhl.toString()).getResultList();   


for (int i = 0; i < itens.size(); i++) {
				
				Estoque_item[] item = (Estoque_item[])itens.get(0);
				System.out.println(" Stock Item  ");
				System.out.println("Id ="+item[i].getId());
				
				
			}
xandevieira

dentro do seu for, vc cria seu “Modelo” e seta os valores.

ex.

Modelo  modelo = new Modelo ();
modelo.setItem ((String) obj[0]);
modelo.setModelo ((String) obj[1]);


e adicoina numa lita de modelos
F

vei tu ta fazendo um esquema que eu nao to conseguindo intende, pelo que eu intendi eu faria mais ou menso assim

List<item> listItem = null; // usei lista não intendi por que tu quer passar de um array para outro

		  for (int i = 0; i < itens.size(); i++) {  
			                 Item item = (Item)itens[i]; 
			                 listItem.add(item);
		  }
	}

não sei se viajei, tenta isso XD

edit;:gora eu li denovo e vi que era uam lista, tenta fazer um por um…

P

tentei o codigo abaixo e deu erro java.lang.ClassCastException: [Ljava.lang.Object;

na linha Estoque_item[] item = (Estoque_item[])itens.get(0);

o que fazer ???

StringBuffer jhl = new StringBuffer();
			jhl.append("SELECT item , modelo " );
			jhl.append(" FROM estoque_item item ,");
			jhl.append("      dispositivo device     , ");
			jhl.append("      modelo modelo     ");
			jhl.append(" where item.device =device.id");
			jhl.append(" and   modelo.id  = device.model");
			
			List<Object[]>  itens = em.getManager().createQuery(jhl.toString()).getResultList();

for (int i = 0; i < itens.size(); i++) {
				
				Estoque_item[] item = (Estoque_item[])itens.get(0);
				System.out.println(" Stock Item  ");
				System.out.println("Id ="+item[i].getId());
				
				
			}
xandevieira

pq o resultado eh um array de objetos, faz como coloquei mais acima, deve dar certo

P

pois estou usando JPA…e vai retornar mais de um registro do banco de dados por isso estou usando assim

como ler array ???

essa é minha duvida …

xandevieira

faz um debug dessa lista, veja como os dados estão.

P

avsouza desculpas não consegui visualizar o que voc~e enviou …

fiz o debug e está certo mas não consigo fazer pra retirar da list os dados que preciso

o que não consigo é fazer essa leitura de linha a linha do itens ???

itens
    elementData
      [0]
         [0] Estoque_item
         [1] Modelo

     [1]
         [0] Estoque_item
         [1] Modelo
Criado 9 de janeiro de 2009
Ultima resposta 9 de jan. de 2009
Respostas 10
Participantes 4