Galera, to fazendo uma pesquisa em hql com joins, ele retorna os campos que quero e mais alguns que não solicitei…
por que o HQL faz isso?
a minha consulta é:
public List<Object[]> pesquisaBloqueto(){
StringBuilder hql = new StringBuilder
("select ").
append(" b.id ").
append(", b.nossoNumero ").
append(", nf.id " ).
append(", nf.dataEmissao ").
append(", nf.cliente ").
append(", c.razaoSocial ").
append(", c.cpf ").
append(", c.cnpj " ).
append(", crl.valor ").
append(", nf.numero ").
append(", crl.dataVencimento ").
append(", l.endereco ").
append(", l.numero ").
append(", ba.nomeSemAcento ").
append(", l.descricaoBairro ").
append(", cep.cep").
append( " from br.com.topsafe.model.financeiro.Bloqueto b ").
append(" left join b.contaReceberLancamento crl ").
append(" left join crl.contaReceber cr ").
append(" left join cr.notaFiscal nf ").
append( " left join nf.cliente c " ).
append(" join c.locais l").
append(" join l.bairro ba").
append(" join ba.cepLocalidade cep ").
append(" where nf.cliente = c.id ").
append(" and nf.numero is not null ").
append(" and nf.id = cr.notaFiscal ").
append(" and cr.id = crl.contaReceber ").
append(" and nf.anulada = 0 " ).
append(" and b.contaReceberEquipamentoLancamento is null " ).
append(" and b.dataArquivo is null ").
append(" and b.nossoNumero is not null ").
append(" and cep.cep is not null").
append(" and b.contaReceberLancamento = crl.id ").
append(" and l.id = ba.id ").
append(" and ba.cepLocalidade = cep.id ");
Query query = getSession().createQuery(hql.toString());
return query.list();
}
como podem ver é uma pesquisa bem simples mas qual o motivo dele fazer uma consulta assim:
select bloqueto0_.CODBLOQUETO as col_0_0_,
bloqueto0_.NOSSO_NUMERO as col_1_0_,
notafiscal3_.CODNOTA_FISCAL_EQUIPAMENTO as col_2_0_,
notafiscal3_.DATA_EMISSAO as col_3_0_,
notafiscal3_.CODCLIENTE as col_4_0_,
cliente4_.RAZAO_SOCIAL as col_5_0_,
cliente4_.CPF as col_6_0_,
cliente4_.CNPJ as col_7_0_,
contareceb1_.VALOR as col_8_0_,
notafiscal3_.NUMERO as col_9_0_,
contareceb1_.DATA_VENCIMENTO as col_10_0_,
locais5_.ENDERECO as col_11_0_,
locais5_.NUMERO as col_12_0_,
cepbairro6_.NOME_SEM_ACENTO as col_13_0_,
locais5_.DESCRICAO_BAIRRO as col_14_0_,
ceplocalid7_.CEP as col_15_0_, cliente4_.
CODCLIENTE as CODCLIENTE7_,
cliente4_.EMAIL as EMAIL7_,
cliente4_.AGENCIA as AGENCIA7_,
cliente4_.CNPJ as CNPJ7_,
cliente4_.CONTA_CORRENTE as CONTA5_7_,
cliente4_.CPF as CPF7_,
cliente4_.DATA_ATUALIZACAO as DATA7_7_,
cliente4_.DATA_CADASTRO as DATA8_7_,
cliente4_.DEDUZIR_COFINS as DEDUZIR9_7_,
cliente4_.DEDUZIR_CSLL as DEDUZIR10_7_,
cliente4_.DEDUZIR_IRRF as DEDUZIR11_7_,
cliente4_.DEDUZIR_INSS as DEDUZIR12_7_,
cliente4_.DEDUZIR_ISSQN_MUNICIPIO as DEDUZIR13_7_,
cliente4_.DEDUZIR_PIS as DEDUZIR14_7_,
cliente4_.DIGITO_AGENCIA as DIGITO15_7_,
cliente4_.DIGITO_CONTA_CORRENTE as DIGITO16_7_,
cliente4_.INFORMACAO_NOTA as INFORMACAO17_7_,
cliente4_.INSCRICAO_ESTADUAL as INSCRICAO18_7_,
cliente4_.INSCRICAO_MUNICIPAL as INSCRICAO19_7_,
cliente4_.INSTRUCAO_BOLETO as INSTRUCAO20_7_,
cliente4_.ISSQN_ALIQUOTA as ISSQN21_7_,
cliente4_.ISSQN_MUNICIPIO as ISSQN22_7_,
cliente4_.MOTIVO as MOTIVO7_,
cliente4_.NOME_FANTASIA as NOME24_7_,
cliente4_.RAZAO_SOCIAL as RAZAO25_7_,
cliente4_.CODREPRESENTANTE as CODREPR29_7_,
cliente4_.SITUACAO as SITUACAO7_,
cliente4_.TELEFONE_PRINCIPAL as TELEFONE27_7_,
cliente4_.CODTIPO_PESSOA as CODTIPO28_7_,
cliente4_.CODUSUARIO as CODUSUARIO7_,
cliente4_.CODUSUARIO_PROSPECTADOR as CODUSUARIO31_7_
from BLOQUETO bloqueto0_
left outer join CONTA_RECEBER_EQUIPAMENTO_LANCAMENTO contareceb1_ on bloqueto0_.CODCONTA_RECEBER_EQUIPAMENTO_LANCAMENTO=contareceb1_.CODCONTA_RECEBER_EQUIPAMENTO_LANCAMENTO
left outer join CONTA_RECEBER_EQUIPAMENTO contareceb2_ on contareceb1_.CODCONTA_RECEBER_EQUIPAMENTO=contareceb2_.CODCONTA_RECEBER_EQUIPAMENTO
left outer join NOTA_FISCAL_EQUIPAMENTO notafiscal3_ on contareceb2_.CODNOTA_FISCAL_EQUIPAMENTO=notafiscal3_.CODNOTA_FISCAL_EQUIPAMENTO
left outer join CLIENTE cliente4_ on notafiscal3_.CODCLIENTE=cliente4_.CODCLIENTE
inner join ENDERECO locais5_ on cliente4_.CODCLIENTE=locais5_.CODCLIENTE
inner join CEP_BAIRRO cepbairro6_ on locais5_.CODBAIRRO=cepbairro6_.CODBAIRRO
inner join CEP_LOCALIDADE ceplocalid7_ on cepbairro6_.CODLOCALIDADE=ceplocalid7_.CODLOCALIDADE
where notafiscal3_.CODCLIENTE=cliente4_.CODCLIENTE
and (notafiscal3_.NUMERO is not null)
and notafiscal3_.CODNOTA_FISCAL_EQUIPAMENTO=contareceb2_.CODNOTA_FISCAL_EQUIPAMENTO
and contareceb2_.CODCONTA_RECEBER_EQUIPAMENTO=contareceb1_.CODCONTA_RECEBER_EQUIPAMENTO
and notafiscal3_.ANULADA=0 and (bloqueto0_.CODCONTA_RECEBER_LANCAMENTO is null)
and (bloqueto0_.DATA_ARQUIVO is null) and (bloqueto0_.NOSSO_NUMERO is not null)
and bloqueto0_.CODCONTA_RECEBER_EQUIPAMENTO_LANCAMENTO=contareceb1_.CODCONTA_RECEBER_EQUIPAMENTO_LANCAMENTO
and locais5_.CODENDERECO=cepbairro6_.CODBAIRRO
and cepbairro6_.CODLOCALIDADE=ceplocalid7_.CODLOCALIDADE
??
Valeu 