Boa tarde pessoal,
eu sei que Vector é mais antiga… e que arraylist é mais seguro e talz… talz…
porém eu estou me deparando com um problema, que por incrivel que pareça eu só consigo resolver com vector. Gostaria que vocês me ajudassem.
é o seguinte, eu crio um ArrayList<Object> e dentro dele, eu recebo um resultList de uma NativeQuery, conforme método abaixo:
public List<Object> listaDeBensPorNumNotaFiscal(int codNotaFiscal){
List<Object> lista = new ArrayList<Object>();
EntityManager manager = factory.createEntityManager();
try{
manager.getTransaction().begin();
final Query query = manager
.createNativeQuery("SELECT * , D.vl_Deprec FROM financeiro.TBSIFN_NOTAFISCALBENS NFB," +
" financeiro.TBSIFN_DEPRECIACAO D WHERE cd_NotaFiscal = " + codNotaFiscal +
"AND D.cd_Deprec = NFB.cd_Deprec ORDER BY cd_Inclusao");
lista = query.getResultList();
manager.getTransaction().commit();
}catch (Exception e) {
// TODO: handle exception
}finally{
if (manager != null) {
manager.close();
}
}
return lista;
}
O problema de ela continuar como ArrayList de Object é que, quando eu tento retomar o valor que possui, da erro.
Por exemplo, o valor da posição 2, é do tipo Integer.
Quando eu tento fazer isso:
Integer teste = (Integer) lista.get(2);
ele não funciona, da erro de conversão e diz que o objeto do tipo Object não pode ser convertido para Integer.
E então eu pego e faço o seguinte.
percorro um vector e jogo o arraylist todo no vector, dae o resultado vem do jeito que eu quiser.
por exemplo:
if (this.notaFiscal.getCodNotaFiscal() != null) {
for (Object notaFiscalBens : nfBensDao.listaDeBensPorNumNotaFiscal(this.notaFiscal.getCodNotaFiscal()) )
{
listaBens.add((Object[])notaFiscalBens);
}
Ou seja, eu estou pegando o ArrayList<Object> e passando para listaBens que é do tipo Vector.
Alguém teria alguma solução para mim melhorar isso ?