No java (API jdbc) começamos a contar da primeira posição como sendo o 1 e não o 0, a não ser que funcionasse diferente na versão atual da (API jdbc postgres ), por isso o "getInt(1)", que retorna o primeiro campo da query, o id do fluxo. É bem nessa linha onde ocorre o erro.
- A chave é composta sim: id_fluxo,id_solicitacao e id_unidade (mas não tem nenhum efeito no problema, não estou usando efetivamente mapeamento relacional (Hibernate...) ), apesar de ter as anotações com as classes de domínio geradas por um plugin. - Resultado do select no banco: (179,20,75,3,,A,51,2,1) O estranho é que no java aparece -79 no stacktrace e a excessão foi gerada pela API e capturada na minha aplicação. Em 26 de setembro de 2011 14:07, Dickson S. Guedes <[email protected]>escreveu: > Em 26 de setembro de 2011 12:49, Tarcisio Martins > <[email protected]> escreveu: > > Integer no postgres e Integer no Java. > > > > Na minha query, > > ... > > > 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 ") > > .... > > > 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); > > } > > De onde vem? > > flx.setNmSglUnidOrigem(rs.getString(8)); > flx.setNmSglUnidDestino(rs.getString(9)); > flx.setNrSituacaoAtual(rs.getInt(10)); > flx.setNrSituacaoFutura(rs.getInt(11)); > > Contei errado ou tem um problema ai na posição dos argumentos em > relação à query? > > []s > -- > Dickson S. Guedes > mail/xmpp: [email protected] - skype: guediz > http://guedesoft.net - http://www.postgresql.org.br > _______________________________________________ > 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
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
