select this_.id_cliente as y0_, this_.razao_social as y1_, this_.cidade as y2_, this_.nome_fantasia as y3_,
max(ped1_.data_pedido) as y4_
from cliente this_
inner join pedido ped1_ on this_.id_cliente=ped1_.id_cliente
left outer join titulo t4_ on this_.id_cliente=t4_.id_cliente and t4_.data_vencimento=? // USAR ESTE AND COM CRITERIA
inner join vendedor_cliente vc2_ on this_.id_cliente=vc2_.id_cliente
inner join vendedor v3_ on vc2_.id_vendedor=v3_.id_vendedor
where ped1_.data_pedido between ? and ? and v3_.id_vendedor=?
group by this_.id_cliente, this_.razao_social, this_.cidade, this_.nome_fantasia order by y3_ asc
Mas fazendo uso do criteria, nao consigo simular a mesma situação..=\
Criteria considera a relação entre duas classes para criar as condições JOIN (INNER, LEFT, RIGHT, OUTER e suas combinações).
Portanto, não temos como dizer como melhorar sem saber as classes envolvidas e o que você está tentando fazer.
A
AlineCastro
Vou tentar explicar a situação, quero mostrar meus clientes que fizeram pedido em determinado periodo e que estão adimplentes, ou seja, não tem titulos vencidos;
Por isso usei o left join com a tabela de titulos.
Mas se deixo a comparaçao de data de vencimento do titulo na clausula where ele nao traz nada, e nao consegui colocar o and junto do left join.
Se puderes analisar e dizer se o que quero é possivel usando criteria. Valeu
left outer join titulo t4_ on this_.id_cliente=t4_.id_cliente // and t4_.data_vencimento=? // USAR ESTE AND COM CRITERIA
se mudo a posiçao do meu data de vencimento ele nao traz nada
where ped1_.data_pedido between ? and ? and v3_.id_vendedor=? and t4_.data_vencimento=?
// and t4_.data_vencimento=? //