Retornar todos as Entidades 1 que não tenham Entidades 2 - duvida em comando sql/criteria

3 respostas
leokaos

Seguinte: tenho a entidade Imovel e a entidade Foto, com uma relação de 1 - N. Existe algum comando sql/criteria que me retorne todos os imoveis que não tem foto?

3 Respostas

leokaos

Então, quebrei a cabeça e tals…mas achu que fica ruim assim:

select I.* from tab_imovel I 

	where 

		(select count(imovel) from tab_fotos where imovel = I.referencia) > 0

funciona, mas achu que terá problemas de desempenho. Além disso, como fazer isso com Criteria?

drsmachado

O criteria possui algumas opções para suprir isto. Não me recordo exatamente, mas há uma Restriction que faz referência à isnull. Caso não, você pode utilizar os joins do Restriction, nesse caso, um left join resolve, se a coluna da foto ficar nula.

leokaos

como seria o comando sql, naum entendi mto bem

pensei um pouco e cheguei nisso:

select I.referencia,F.imovel from tab_imovel I 

	left join tab_fotos F on F.imovel = I.referencia 

		where F.imovel is null;

mas como fazer isso eh criteria?

Criado 4 de maio de 2011
Ultima resposta 6 de mai. de 2011
Respostas 3
Participantes 2