..problema com left join no Criteria do Hibernate3

…bom dia a todos,

…to com um probleminha, tenho o seguinte SQL:

              select 
	       *		
                     from documento doc 
                     left join despacho_documento desp on (desp.id_documento = doc.id_documento)
                     left join cargo car on (desp.id_cargo_destino = id_cargo)
                                  

…comecei a escreve-lo utilizando o CRITERIA do Hibernate da seguinte maneira:

                 //criando o objeto de consulta
                 Criteria criteria = hbn.createCriteria(Documento.class);
                 
                 //inserindo os relacionamentos
                 criteria.createCriteria("listaDespachoDocumento", "despacho");
	 criteria.createCriteria("despacho.cargoDestino", "destino");

                 //parâmetros que "TEORICAMENTE" realizariam LEFT JOIN com os relacionamentos
                 criteria.setFetchMode("despacho", FetchMode.JOIN);
                 criteria.setFetchMode("destino", FetchMode.JOIN);

… o Criteria acima executa sem problemas, no entanto o resultado não é um LEFT JOIN com os relacionamentos e sim um INNER JOIN !!!
…como faço pra FORÇAR a execução de um LEFT JOIN com os relacionamentos mapeados acima (despacho e destino ) ???
…grato qualquer ajuda ?? :roll:

encontrei a solução, :lol: e so utilizar o método createCriteria sobrecarregado da seguinte maneira :


               //criando o objeto de consulta   
               Criteria criteria = hbn.createCriteria(Documento.class);   
                 
               //inserindo os relacionamentos   
               criteria.createCriteria("listaDespachoDocumento", "despacho", Criteria.LEFT_JOIN);   
               criteria.createCriteria("despacho.cargoDestino", "destino", Criteria.LEFT_JOIN);   
             

…valeu !!!

[quote=breffo]encontrei a solução, :lol: e so utilizar o método createCriteria sobrecarregado da seguinte maneira :


               //criando o objeto de consulta   
               Criteria criteria = hbn.createCriteria(Documento.class);   
                 
               //inserindo os relacionamentos   
               criteria.createCriteria("listaDespachoDocumento", "despacho", Criteria.LEFT_JOIN);   
               criteria.createCriteria("despacho.cargoDestino", "destino", Criteria.LEFT_JOIN);   
             

…valeu !!![/quote]

Velho este seu post me ajudou de mais! Muito obrigado, consegui resolver meu problema em uma consulta aqui!

Abraços… :smiley: