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
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a