No meu mapeamento, uma SolicitacaoCotacao possui uma Cotacao, um relacionamento one-to-one. Estou tendo problemas para realizar uma query com criteria, vejam:
List<Criterion> criterios = new ArrayList<Criterion>();
criterios.add(Restrictions.isNull("cotacao"));
Quando adiciono esse Criterion na em uma Criteria de SolicitacaoCotacao eu espero que ele retorne todas as instâncias de SolicitacaoCotacao que não possuem uma Cotacao, ou seja, que o atributo cotacao seja null. Porém ele não retorna nenhuma instância. Vejam o SQL gerado:
Hibernate:
/* criteria query */ select
this_.id as id76_1_,
this_.qtde as qtde76_1_,
this_.referenciaCliente as referenc3_76_1_,
this_.localEntrega as localEnt4_76_1_,
this_.solicitante as solicita5_76_1_,
this_.dataAbertura as dataAber6_76_1_,
this_.dataVencimento as dataVenc7_76_1_,
this_.idProduto as idProduto76_1_,
this_.idCliente as idCliente76_1_,
cotacao1_.id as id21_0_,
cotacao1_.nome as nome21_0_,
cotacao1_.preco as preco21_0_,
cotacao1_.condicaoPagamento as condicao4_21_0_,
cotacao1_.prazoEntrega as prazoEnt5_21_0_,
cotacao1_.classificacaoFiscal as classifi6_21_0_,
cotacao1_.ipi as ipi21_0_,
cotacao1_.icms as icms21_0_,
cotacao1_.iss as iss21_0_,
cotacao1_.data as data21_0_,
cotacao1_.validadeProposta as validad11_21_0_,
cotacao1_.idSolicitacaoCotacao as idSolic12_21_0_
from
solicitacaocotacao this_
inner join
cotacao cotacao1_
on this_.id=cotacao1_.idSolicitacaoCotacao
where
this_.id is null
order by
this_.id desc limit ?
Destacando o que realmente interessa:
from
solicitacaocotacao this_
inner join
cotacao cotacao1_
on this_.id=cotacao1_.idSolicitacaoCotacao
where
this_.id is null
order by
this_.id desc limit ?
O que estou fazendo errado? No fórum do Hibernate tem um cara que postou exatamente o mesmo problema que o meu, mas ele não teve resposta, vejam aqui
abraços!
