O erro acontece em: flx.getId().setIdFluxo(rs.getInt(1)); , segunda linha depois do while(rs.next)....
Em 26 de setembro de 2011 12:49, Tarcisio Martins < [email protected]> escreveu: > Integer no postgres e Integer no Java. > > Na minha query, > > > select distinct (flx.id_fluxo, flx.id_unidade, flx.id_unidade_destino, > flx.nr_seq, flx.dt_desativacao, flx.tp_status, flx.id_solicitacao, > flx.nr_situacao_atual, flx.nr_situacao_futura) > from public.usuario u > inner join public.estrutura_organizacional eo on (u.id_unidade = > eo.id_unidade) > inner join public.relacionamento_eo_sol eosol on (eo.id_unidade = > eosol.id_unidade) > inner join public.protocolo prot ON (prot.id_unidade = > eosol.id_unidade > and prot.id_solicitacao = 51), > public.fluxo flx > where flx.id_unidade = prot.id_unidade and > (flx.nr_situacao_atual, flx.nr_situacao_futura) not in ( > select fl.nr_situacao_atual, > fl.nr_situacao_futura > from public.tramitacao tmtc, > public.fluxo fl, > public.protocolo prt > where tmtc.nr_situacao_atual = fl.nr_situacao_atual and > tmtc.nr_situacao_futura = fl.nr_situacao_futura and > tmtc.id_protocolo = prt.id_protocolo and > tmtc.id_unidade_origem = 20 > ) > , > > > será que tem a ver com o distinct que coloquei? > > > distinct (flx.id_fluxo, flx.id_unidade, flx.id_unidade_destino, > flx.nr_seq, flx.dt_desativacao, flx.tp_status, flx.id_solicitacao, > flx.nr_situacao_atual, flx.nr_situacao_futura), > > estou usando o getInt: > > > // inicio FluxoDAO.java -> buscaPossiveisDestinos > > public List<Fluxo> buscaPossiveisDestinos(Integer id_solicitacao, > Integer id_unidade_origem) throws SiprotGenericException { > > List<Fluxo> fluxo = new ArrayList<Fluxo>(); > > StringBuffer qry = new StringBuffer(512); > qry.append("select distinct(flx.id_fluxo, flx.id_unidade, > flx.id_unidade_destino, flx.nr_seq, flx.dt_desativacao, flx.tp_status, > flx.id_solicitacao, ") > .append("flx.nr_situacao_atual, flx.nr_situacao_futura ) ") > .append("from public.usuario u ") > .append("inner join public.estrutura_organizacional eo ") > .append("on (u.id_unidade = eo.id_unidade) ") > .append("inner join public.relacionamento_eo_sol eosol ") > .append("on (eo.id_unidade = eosol.id_unidade) ") > .append("inner join public.protocolo prot ON (prot.id_unidade = > eosol.id_unidade and prot.id_solicitacao=? ),public.fluxo flx ") > .append("where flx.id_unidade = prot.id_unidade and > (flx.nr_situacao_atual,flx.nr_situacao_futura) not in ") > .append("( select fl.nr_situacao_atual, fl.nr_situacao_futura ") > .append("from public.tramitacao tmtc,public.fluxo > fl,public.protocolo prt ") > .append("where tmtc.nr_situacao_atual=fl.nr_situacao_atual ") > .append("and tmtc.nr_situacao_futura=fl.nr_situacao_futura ") > .append("and tmtc.id_protocolo=prt.id_protocolo ") > .append("and tmtc.id_unidade_origem=? )"); > System.out.println(qry.toString()); > if (!super.getIsTransaction()) > con = PostgresDAOFactory.createConection(); > > try { > PreparedStatement ps = con.prepareStatement(qry.toString()); > > ps.setInt(1, id_solicitacao); > ps.setInt(2, id_unidade_origem); > > ResultSet rs = ps.executeQuery(); > > while (rs.next()) { > Fluxo flx = new Fluxo(); > flx.getId().setIdFluxo(rs.getInt(1)); > flx.getId().setIdUnidade(rs.getInt(2)); > flx.setIdUnidadeDestino(rs.getInt(3)); > flx.setNrSeq(rs.getInt(4)); > flx.setDtDesativacao(rs.getTimestamp(5)); > flx.setTpStatus(rs.getString(6)); > flx.getId().setIdSolicitacao(rs.getInt(7)); > flx.setNmSglUnidOrigem(rs.getString(8)); > flx.setNmSglUnidDestino(rs.getString(9)); > flx.setNrSituacaoAtual(rs.getInt(10)); > flx.setNrSituacaoFutura(rs.getInt(11)); > > fluxo.add(flx); > } > > ps.close(); > > return fluxo; > } catch (SQLException ex) { > throw new SiprotGenericException(ex.getMessage(), ex); > } finally { > if (con != null) { > try { > con.close(); > } catch (SQLException ex) { > throw new SiprotGenericException(ex.getMessage(), ex); > } > } > > } > > } > > // fim > > > vou testar sem o distinct, mas tbém no bd a primeira coluna é 179 e como > pode ver na excessão > que está no stacktrace que enviei, aqui no java a API me mostra -79, troca > o 1 pelo - , ou algo parecido... > > > > Em 26 de setembro de 2011 11:58, Flavio Henrique Araque Gurgel < > [email protected]> escreveu: > > 2011/9/26 Tarcisio Martins <[email protected]>: >> > Não estou usando Hibernate >> > >> > lc_collate = LC_COLLATE = 'pt_BR.utf8' >> > >> > client_encoding = 'UTF8' >> > >> > br.com.ufu.prograd.siprot.exception.SiprotGenericException: Bad value >> for >> > type int : -79,20,75,3,,A,51,2,1 >> >> Me parece que há um erro de mapeamento aí no seu sistema. Você está >> tentando carregar um valor fracionário numa variável inteira. >> Pode ser que nem haja erro no log do PostgreSQL porque a consulta pode >> estar certa para o banco de dados. >> >> Qual o data type da coluna no PostgreSQL, e qual o data type da >> variável em Java? >> >> []s >> Flavio Gurgel >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> > > > > -- > - Tarcisio Martins Ferreira, 2010 > - Analista Desenvolvedor de Sistemas > - Bacharel em Ciências da Comp. > - Universidade Federal de Uberlândia > - Minas Gerais > > > -- - Tarcisio Martins Ferreira, 2010 - Analista Desenvolvedor de Sistemas - Bacharel em Ciências da Comp. - Universidade Federal de Uberlândia - Minas Gerais
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
