Join automatico hibernate

1 resposta
xandevieira

Bom dia, estou com o seguinte:

Criteria criteria = getCurrentSession().createCriteria(Titulo.class, "t");
criteria.createAlias("t.documento", "d");
criteria.createAlias("t.credor", "c");
criteria.addOrder(Order.asc("t.dtContabil"));

Ou seja, selecionando Titulo juntando com Documento e Credor.
Veja a saída no console, percebam que esta sendo feito join com Usuario, sendo que não coloquei isso.

select this_.nuTitulo as nuTitulo459_7_, this_.cdEmpresa as cdEmpresa459_7_, this_.cdCredor as cdCredor459_7_, this_.cdDocumento as cdDocume4_459_7_, this_.nuTituloCRC as nuTitulo5_459_7_, this_.nuDocumento as nuDocume6_459_7_, this_.dtEmissao as dtEmissao459_7_, this_.dtCompetencia as dtCompet8_459_7_, this_.dtCadastro as dtCadastro459_7_, this_.dtAlteracao as dtAlter10_459_7_, this_.cdUsuario as cdUsuario459_7_, this_.cdUsuarioAlt as cdUsuar12_459_7_, this_.cdOrigem as cdOrigem459_7_, this_.cdLocalAtual as cdLocal14_459_7_, this_.deObservacao as deObser15_459_7_, this_.nuRelatorioAdm as nuRelat16_459_7_, this_.flRelatorioAdm as flRelat17_459_7_, this_.flEnviadoDoc as flEnvia18_459_7_, this_.flRelTaxaAdm as flRelTa19_459_7_, this_.flRecebidoDoc as flReceb20_459_7_, this_.tpRegConsistente as tpRegCo21_459_7_, this_.flFormaPgCTB as flForma22_459_7_, this_.nuLoteDocto as nuLoteD23_459_7_, this_.dtContabil as dtContabil459_7_, this_.flContabil as flContabil459_7_, this_.nuLoteContabil as nuLoteC26_459_7_, this_.vlDesconto as vlDesconto459_7_, this_.vlValidacao as vlValid28_459_7_, this_.deDesconto as deDesconto459_7_, this_.tpSerie as tpSerie459_7_, this_.qtParcelas as qtParcelas459_7_, this_.cdCCLoteFiscal as cdCCLot32_459_7_, this_.nuLoteFiscal as nuLoteF33_459_7_, this_.cdOperacaoCtb as cdOpera34_459_7_, this_.vlAcrescimo as vlAcres35_459_7_, c2_.cdCredor as cdCredor128_0_, c2_.deCertificado as deCertif2_128_0_, c2_.deEmail as deEmail128_0_, c2_.deMSN as deMSN128_0_, c2_.deSkype as deSkype128_0_, c2_.dtHomologacao as dtHomolo6_128_0_, c2_.flAtivo as flAtivo128_0_, c2_.flFisJur as flFisJur128_0_, c2_.flME as flME128_0_, c2_.flApresGFIP as flApres10_128_0_, c2_.flTipoConta as flTipoC11_128_0_, c2_.flControlado as flContr12_128_0_, c2_.nmCredor as nmCredor128_0_, c2_.nmFantasia as nmFantasia128_0_, c2_.tpRegConsistente as tpRegCo15_128_0_, c2_.nuRamal as nuRamal128_0_, c2_.nuCMC as nuCMC128_0_, c2_.nuCNPJ as nuCNPJ128_0_, c2_.nuCPF as nuCPF128_0_, c2_.nuIncricaoEst as nuIncri20_128_0_, c2_.nuInscricaoMunic as nuInscr21_128_0_, c2_.nuIdentidade as nuIdent22_128_0_, c2_.peComissao as peComissao128_0_, c2_.qtPrazoMedEntr as qtPrazo24_128_0_, c2_.vlDeducao as vlDeducao128_0_, c2_.vlNota as vlNota128_0_, c2_.deObservacao as deObser27_128_0_, c2_.deSite as deSite128_0_, c2_.cdAuxiliar as cdAuxiliar128_0_, c2_.cdBanco as cdBanco128_0_, c2_.dvAgencia as dvAgencia128_0_, c2_.dvConta as dvConta128_0_, c2_.dvDAC as dvDAC128_0_, c2_.nmAgencia as nmAgencia128_0_, c2_.nuAgencia as nuAgencia128_0_, c2_.nmFavorecido as nmFavor36_128_0_, c2_.nuCNPJFavorecido as nuCNPJF37_128_0_, c2_.nuCPFFavorecido as nuCPFFa38_128_0_, c2_.nuConta as nuConta128_0_, c2_.cdImpRel as cdImpRel128_0_, c2_.flAdiantamento as flAdian41_128_0_, c2_.dtCadastramento as dtCadas42_128_0_, c2_.dtUltAlteracao as dtUltAl43_128_0_, c2_.flFuncionario as flFunci44_128_0_, c2_.flColabUsoPVD as flColab45_128_0_, c2_.flColabUsoSGQ as flColab46_128_0_, c2_.nuRegistro as nuRegistro128_0_, c2_.dtAdmissao as dtAdmissao128_0_, c2_.dtDemissao as dtDemissao128_0_, c2_.cdUsuarioSIE as cdUsuar50_128_0_, c2_.cdCargoFuncao as cdCargo51_128_0_, c2_.cdSetorObra as cdSetor52_128_0_, c2_.flFornecedor as flForne53_128_0_, c2_.flCorretor as flCorretor128_0_, c2_.flColaborador as flColab55_128_0_, c2_.flOrgaoPublico as flOrgao56_128_0_, c2_.cdEmpresaTrabalha as cdEmpre57_128_0_, c2_.nuCreci as nuCreci128_0_, c2_.flUtilizaPCR as flUtili59_128_0_, c2_.nmUsuarioPortal as nmUsuar60_128_0_, c2_.nmSenhaPortal as nmSenha61_128_0_, c2_.nuFone as nuFone128_0_, c2_.nuFax as nuFax128_0_, c2_.deEndereco as deEndereco128_0_, c2_.cdNumero as cdNumero128_0_, c2_.nmBairro as nmBairro128_0_, c2_.deComplemento as deCompl67_128_0_, c2_.nuCEP as nuCEP128_0_, c2_.cdMunicipio as cdMunic69_128_0_, c2_.cdTipoPagamento as cdTipoP70_128_0_, c2_.cdUsuarioCad as cdUsuar71_128_0_, c2_.cdUsuarioAlt as cdUsuar72_128_0_, c2_.cdsetorObra as cdsetor52_128_0_, c2_.cdCredor as formula9_0_, usuario5_.cdUsuarioSie as cdUsuario237_1_, usuario5_1_.nmUsuario as nmUsuario237_1_, usuario5_1_.nmSenha as nmSenha237_1_, usuario5_1_.deInformacoes as deInform4_237_1_, usuario5_1_.dtAtivacao as dtAtivacao237_1_, usuario5_1_.dtDesativacao as dtDesati6_237_1_, usuario5_1_.dtAlteracaosenha as dtAltera7_237_1_, usuario5_1_.nmUltimasenha as nmUltima8_237_1_, usuario5_1_.tpUsuario as tpUsuario237_1_, usuario5_1_.flHabilitado as flHabil10_237_1_, usuario5_1_.deEmail as deEmail237_1_, usuario5_1_.dtUltLoginOk as dtUltLo12_237_1_, usuario5_1_.dtUltLoginErrado as dtUltLo13_237_1_, usuario5_1_.qtLoginErrado as qtLogin14_237_1_, usuario5_1_.dtBloqueio as dtBloqueio237_1_, usuario5_.flFundoRotulo as flFundoR2_265_1_, usuario5_.flFormatSaidaDoc as flFormat3_265_1_, usuario5_.cdUsuarioAut as cdUsuari4_265_1_, usuario5_.nmSenhaAut as nmSenhaAut265_1_, usuario5_.cdModulo as cdModulo265_1_, usuario5_.cdSistema as cdSistema265_1_, usuario5_.cdLogoMarca as cdLogoMa8_265_1_, usuario5_.deHorarioAcesso as deHorari9_265_1_, usuario6_.cdUsuarioSie as cdUsuario237_2_, usuario6_1_.nmUsuario as nmUsuario237_2_, usuario6_1_.nmSenha as nmSenha237_2_, usuario6_1_.deInformacoes as deInform4_237_2_, usuario6_1_.dtAtivacao as dtAtivacao237_2_, usuario6_1_.dtDesativacao as dtDesati6_237_2_, usuario6_1_.dtAlteracaosenha as dtAltera7_237_2_, usuario6_1_.nmUltimasenha as nmUltima8_237_2_, usuario6_1_.tpUsuario as tpUsuario237_2_, usuario6_1_.flHabilitado as flHabil10_237_2_, usuario6_1_.deEmail as deEmail237_2_, usuario6_1_.dtUltLoginOk as dtUltLo12_237_2_, usuario6_1_.dtUltLoginErrado as dtUltLo13_237_2_, usuario6_1_.qtLoginErrado as qtLogin14_237_2_, usuario6_1_.dtBloqueio as dtBloqueio237_2_, usuario6_.flFundoRotulo as flFundoR2_265_2_, usuario6_.flFormatSaidaDoc as flFormat3_265_2_, usuario6_.cdUsuarioAut as cdUsuari4_265_2_, usuario6_.nmSenhaAut as nmSenhaAut265_2_, usuario6_.cdModulo as cdModulo265_2_, usuario6_.cdSistema as cdSistema265_2_, usuario6_.cdLogoMarca as cdLogoMa8_265_2_, usuario6_.deHorarioAcesso as deHorari9_265_2_, usuario7_.cdUsuarioSie as cdUsuario237_3_, usuario7_1_.nmUsuario as nmUsuario237_3_, usuario7_1_.nmSenha as nmSenha237_3_, usuario7_1_.deInformacoes as deInform4_237_3_, usuario7_1_.dtAtivacao as dtAtivacao237_3_, usuario7_1_.dtDesativacao as dtDesati6_237_3_, usuario7_1_.dtAlteracaosenha as dtAltera7_237_3_, usuario7_1_.nmUltimasenha as nmUltima8_237_3_, usuario7_1_.tpUsuario as tpUsuario237_3_, usuario7_1_.flHabilitado as flHabil10_237_3_, usuario7_1_.deEmail as deEmail237_3_, usuario7_1_.dtUltLoginOk as dtUltLo12_237_3_, usuario7_1_.dtUltLoginErrado as dtUltLo13_237_3_, usuario7_1_.qtLoginErrado as qtLogin14_237_3_, usuario7_1_.dtBloqueio as dtBloqueio237_3_, usuario7_.flFundoRotulo as flFundoR2_265_3_, usuario7_.flFormatSaidaDoc as flFormat3_265_3_, usuario7_.cdUsuarioAut as cdUsuari4_265_3_, usuario7_.nmSenhaAut as nmSenhaAut265_3_, usuario7_.cdModulo as cdModulo265_3_, usuario7_.cdSistema as cdSistema265_3_, usuario7_.cdLogoMarca as cdLogoMa8_265_3_, usuario7_.deHorarioAcesso as deHorari9_265_3_, usuario8_.cdUsuarioSie as cdUsuario237_4_, usuario8_1_.nmUsuario as nmUsuario237_4_, usuario8_1_.nmSenha as nmSenha237_4_, usuario8_1_.deInformacoes as deInform4_237_4_, usuario8_1_.dtAtivacao as dtAtivacao237_4_, usuario8_1_.dtDesativacao as dtDesati6_237_4_, usuario8_1_.dtAlteracaosenha as dtAltera7_237_4_, usuario8_1_.nmUltimasenha as nmUltima8_237_4_, usuario8_1_.tpUsuario as tpUsuario237_4_, usuario8_1_.flHabilitado as flHabil10_237_4_, usuario8_1_.deEmail as deEmail237_4_, usuario8_1_.dtUltLoginOk as dtUltLo12_237_4_, usuario8_1_.dtUltLoginErrado as dtUltLo13_237_4_, usuario8_1_.qtLoginErrado as qtLogin14_237_4_, usuario8_1_.dtBloqueio as dtBloqueio237_4_, usuario8_.flFundoRotulo as flFundoR2_265_4_, usuario8_.flFormatSaidaDoc as flFormat3_265_4_, usuario8_.cdUsuarioAut as cdUsuari4_265_4_, usuario8_.nmSenhaAut as nmSenhaAut265_4_, usuario8_.cdModulo as cdModulo265_4_, usuario8_.cdSistema as cdSistema265_4_, usuario8_.cdLogoMarca as cdLogoMa8_265_4_, usuario8_.deHorarioAcesso as deHorari9_265_4_, usuario9_.cdUsuarioSie as cdUsuario237_5_, usuario9_1_.nmUsuario as nmUsuario237_5_, usuario9_1_.nmSenha as nmSenha237_5_, usuario9_1_.deInformacoes as deInform4_237_5_, usuario9_1_.dtAtivacao as dtAtivacao237_5_, usuario9_1_.dtDesativacao as dtDesati6_237_5_, usuario9_1_.dtAlteracaosenha as dtAltera7_237_5_, usuario9_1_.nmUltimasenha as nmUltima8_237_5_, usuario9_1_.tpUsuario as tpUsuario237_5_, usuario9_1_.flHabilitado as flHabil10_237_5_, usuario9_1_.deEmail as deEmail237_5_, usuario9_1_.dtUltLoginOk as dtUltLo12_237_5_, usuario9_1_.dtUltLoginErrado as dtUltLo13_237_5_, usuario9_1_.qtLoginErrado as qtLogin14_237_5_, usuario9_1_.dtBloqueio as dtBloqueio237_5_, usuario9_.flFundoRotulo as flFundoR2_265_5_, usuario9_.flFormatSaidaDoc as flFormat3_265_5_, usuario9_.cdUsuarioAut as cdUsuari4_265_5_, usuario9_.nmSenhaAut as nmSenhaAut265_5_, usuario9_.cdModulo as cdModulo265_5_, usuario9_.cdSistema as cdSistema265_5_, usuario9_.cdLogoMarca as cdLogoMa8_265_5_, usuario9_.deHorarioAcesso as deHorari9_265_5_, d1_.cdDocumento as cdDocume1_123_6_, d1_.flAcessoRestrito as flAcesso2_123_6_, d1_.flApresentacao as flAprese3_123_6_, d1_.flAtivo as flAtivo123_6_, d1_.flBaixaAdiantCP as flBaixaA5_123_6_, d1_.flBlqVencto as flBlqVen6_123_6_, d1_.flConfFunc as flConfFunc123_6_, d1_.flContabilizar as flContab8_123_6_, d1_.flControlaNum as flContro9_123_6_, d1_.flControlaNumCR as flContr10_123_6_, d1_.flExclusaoCP as flExclu11_123_6_, d1_.flExclusaoCR as flExclu12_123_6_, d1_.flFiscal as flFiscal123_6_, d1_.flFormaPgCTB as flForma14_123_6_, d1_.flInterno as flInterno123_6_, d1_.flPagamento as flPagam16_123_6_, d1_.flPrevisao as flPrevisao123_6_, d1_.flRateiaImp as flRatei18_123_6_, d1_.flRecebimento as flReceb19_123_6_, d1_.flSemAprop as flSemAprop123_6_, d1_.nmDocumento as nmDocum21_123_6_, d1_.flContraPartida as flContr22_123_6_, d1_.flDevolucao as flDevol23_123_6_, d1_.flCaucao as flCaucao123_6_, d1_.flPermuta as flPermuta123_6_, d1_.cdDocFiscal as cdDocFi26_123_6_, d1_.flChaveNFE as flChaveNFE123_6_, d1_.cdModeloDoc as cdModel28_123_6_, d1_.flSpedPisCofins as flSpedP29_123_6_, d1_.deHistoricoCtb as deHisto30_123_6_, d1_.flIncidePISCOFINS as flIncid31_123_6_ from ecpgTitulo this_ full outer join ecadCredor c2_ on this_.cdCredor=c2_.cdCredor left outer join esieUsuario usuario5_ on c2_.cdUsuarioSIE=usuario5_.cdUsuarioSie left outer join ESEGUSUARIO usuario5_1_ on usuario5_.cdUsuarioSie=usuario5_1_.cdUsuario left outer join esieUsuario usuario6_ on c2_.cdUsuarioCad=usuario6_.cdUsuarioSie left outer join ESEGUSUARIO usuario6_1_ on usuario6_.cdUsuarioSie=usuario6_1_.cdUsuario left outer join esieUsuario usuario7_ on c2_.cdUsuarioAlt=usuario7_.cdUsuarioSie left outer join ESEGUSUARIO usuario7_1_ on usuario7_.cdUsuarioSie=usuario7_1_.cdUsuario left outer join esieUsuario usuario8_ on this_.cdUsuario=usuario8_.cdUsuarioSie left outer join ESEGUSUARIO usuario8_1_ on usuario8_.cdUsuarioSie=usuario8_1_.cdUsuario left outer join esieUsuario usuario9_ on this_.cdUsuarioAlt=usuario9_.cdUsuarioSie left outer join ESEGUSUARIO usuario9_1_ on usuario9_.cdUsuarioSie=usuario9_1_.cdUsuario inner join ecadDocumento d1_ on this_.cdDocumento=d1_.cdDocumento where this_.cdEmpresa=? and this_.dtContabil between ? and ? and d1_.flContabilizar=? and this_.flContabil in ( ?, ? ) and this_.nuLoteContabil is null and this_.cdOrigem<>? order by this_.dtContabil asc

Meu mapeamento do Credor

<property name="cdUsuarioSIE" type="string" />

		<many-to-one name="usuarioSIE" update="false" insert="false">
			<column name="cdUsuarioSIE"/>
		</many-to-one>
<many-to-one name="usuarioCad" update="false">
            <column name="cdUsuarioCad"/>
        </many-to-one>
        
        <many-to-one name="usuarioAlt">
            <column name="cdUsuarioAlt"/>
        </many-to-one>

Tem como fazer somente o que estou colocando sem esses joins q não fiz?

1 Resposta

fbl.lucas

Cara vc tem que colocar como fetch type = Lazy, só não sei como fazer isso em hbm
Nos relacionamento manytoone vê se existe um atributo chamado “fetch”

Criado 16 de fevereiro de 2012
Ultima resposta 16 de fev. de 2012
Respostas 1
Participantes 2