Minha query está ok, via select retorna certinho mas, no Java, digo não retorna nada no JSP

4 respostas
A

Minha query está ok, via select retorna certinho mas, no Java, digo não retorna nada no JSP... O que pode?

/**
	 * 
	 * <B>Funcionalidade método:</B> TODO: Pesquisa de Pendências<BR>
	 *
	 * @param voAlcada
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public List<VDadosDocumentoFormalizacao> getPendencias(VDadosDocumentoFormalizacao vDadosDocumentoFormalizacao) {
		List<VDadosDocumentoFormalizacao> pendencias = new ArrayList<VDadosDocumentoFormalizacao>();
		try {
			ArrayList<Object> params = new ArrayList<Object>(0);
			VQuery query = new VQuery(queryPendencias(vDadosDocumentoFormalizacao.getNuProposta()),params);
			Collection col = selecionar(query);
			if(col != null && col.size() > 0) {
				for(Iterator it = col.iterator(); it.hasNext();)
					pendencias.add(createDadosDocumentoFormalizacao(new MapWrapper((Map) it.next()))); 
			}
		} catch(Exception e) {
			logger.error("Erro ao pesquisar Pendencias, tabela e TbDadosDocumentoFormalizacao", e);
			e.printStackTrace();
			throw new RuntimeException("Erro ao pesquisar Pendencias, tabela e TbDadosDocumentoFormalizacao", e);
		}
		return pendencias;
	}

	private String queryPendencias(Integer nuProposta) {
		StringBuffer query = new StringBuffer()
		.append("SELECT tp.NmTipoDocumento AS Tipo,")
		.append(" d.NmDocumento AS Descricao, ") //dar espaço para não ficar grudada uma linha na outra
		.append(" mp.DsMotivo AS Motivo, ")
		.append(" sf.DsStatusFormalizacao AS Status")
		.append(" FROM DBPENDENCIA..TbDadosDocumentoFormalizacao ddf")
		.append(" INNER JOIN DBCOR..TbDocumento d ON ddf.CdDocumento = d.CdDocumento")
		.append(" INNER JOIN DBPENDENCIA..TbMotivoPendencia mp ON ddf.CdMotivoPendencia = mp.CdMotivoPendencia")
		.append(" INNER JOIN DBPENDENCIA..TbFormalizacaoAutorizacaoPagto fap ON fap.NuProposta = ddf.NuProposta")
		.append(" INNER JOIN DBPENDENCIA..TbStatusFormalizacao sf ON sf.CdStatusFormalizacao = fap.CdStatusFormalizacao")
		.append(" INNER JOIN DBCOR..TbTipoDocumento tp ON tp.CdTipoDocumento = d.CdTipoDocumento")
		.append(" where fap.NuProposta =" + nuProposta) //tá recebendo nuProposta dinamicamente ex: da query -> where fap.NuProposta = 7007652
		.append(" UNION ALL")
		.append(" SELECT 	'Cheque' AS Tipo, ")
		.append(" 'Parcela' + RIGHT(rtrim(ltrim('0' + convert(VARCHAR(3),ddf.NuParcela))),2) AS Descricao,")
		.append(" mp.DsMotivo AS Motivo,")
		.append(" sf.DsStatusFormalizacao AS Status")
		.append(" FROM dbpendencia..TbDadosChequeTbMotPendCheque ddf")
		.append(" INNER JOIN DBPENDENCIA..TbMotivoPendencia mp ON ddf.CdMotivoPendenciaCheque = mp.CdMotivoPendencia")
		.append(" INNER JOIN DBPENDENCIA..TbFormalizacaoAutorizacaoPagto fap ON fap.NuProposta = ddf.NuProposta")
		.append(" INNER JOIN DBPENDENCIA..TbStatusFormalizacao sf ON sf.CdStatusFormalizacao = fap.CdStatusFormalizacao")
		.append(" where fap.NuProposta =" + nuProposta)
		.append(" UNION ALL")
		.append(" SELECT 'PAGAMENTO'AS Tipo, ")
		.append(" dp.NmFavorecido AS Descricao,")
		.append(" mp.DsMotivoPendenciaPagamento AS Motivo,")
		.append(" sf.DsStatusFormalizacao AS Status")
		.append(" FROM DBPENDENCIA..TbDadosPagtoMotivoPendencia ddf")
		.append(" INNER JOIN DBPENDENCIA..TbDadosPagamento dp ON dp.CdDadosPagamento = ddf.CdDadosPagamento")
		.append(" INNER JOIN DBPENDENCIA..TbMotivoPendenciaPagamento mp ON ddf.CdMotivoPendenciaPagamento = mp.CdMotivoPendenciaPagamento")
		.append(" INNER JOIN DBPENDENCIA..TbFormalizacaoAutorizacaoPagto fap ON fap.NuProposta = dp.NuProposta")
		.append(" INNER JOIN DBPENDENCIA..TbStatusFormalizacao sf ON sf.CdStatusFormalizacao = fap.CdStatusFormalizacao")
		.append(" where fap.NuProposta =" + nuProposta);
		return query.toString(); //tá fazendo um casting transformando o StringBuffer em String, usando o método toString()
	}
	
	private VDadosDocumentoFormalizacao createDadosDocumentoFormalizacao (MapWrapper mpw){
		VDadosDocumentoFormalizacao dadosDocumentoFormalizacao = new VDadosDocumentoFormalizacao();
		
		//entender melhor
		VMotivoPendencia motivoPendencia = new VMotivoPendencia();
		motivoPendencia.setDsMotivo(mpw.getStringOrEmpty("Motivo")); //mpw e getStringOrEmpty são da BV, Motivo é da coluna do select -> dsMotivo
		dadosDocumentoFormalizacao.setVMotivoPendencia(motivoPendencia);
		
		VDocumento documento = new VDocumento();
		documento.setNmDocumento(mpw.getStringOrEmpty("Descricao"));
		dadosDocumentoFormalizacao.setDocumento(documento);
		
		VStatusFormalizacao statusFormalizacao = new VStatusFormalizacao();
		statusFormalizacao.setDsStatusFormalizacao(mpw.getStringOrEmpty("Status"));
		dadosDocumentoFormalizacao.setDocumento(documento);
		
		VTipoDocumento tipoDocumento = new VTipoDocumento(); //tá instanciando pq lá na query faz join com essas tabelas
		tipoDocumento.setNmTipoDocumento(mpw.getStringOrEmpty("Tipo"));
		dadosDocumentoFormalizacao.setTipoDocumento(tipoDocumento);
		return dadosDocumentoFormalizacao;
	}

4 Respostas

A

Alguma dica?

A

entao,

posta seu jsp completo para dar uma olhada…

abs

f4binho

Filho cadê o resto do código? Ou é só isso?

E

Não está dando algum erro de SQL aqui não? Tem certeza que você copiou tudo direitinho? (Atenção, veja se você não comeu nenhum espaço. )

Criado 14 de junho de 2010
Ultima resposta 14 de jun. de 2010
Respostas 4
Participantes 4