Como faço uma Subquery com Hibernate. Preciso selecionar uma lista de Objetos nessas condições?
select * from movimento where vl_desvio_mar <> 0 and cd_ua=130 and not exists
(select desvio.id_movimento
from desvio
where desvio.id_movimento=movimento.id_movimento and cd_periodo = 362)
Pesquisou Criteria?
Dê uma olhada na documentação e veja que com dois Restrictions você mata a primeira parte. Com um alais e mais uns restrictions você conclui a outra.
Em relação as Restrictions.eq já estou utilizando, agora em relação a esse alias que não estou achamando alguma coisa para esse fim. A questão é que tenho que retornar um list aí num sei como fazer sem usar o critéria.
Pelo que pude compreender, existe uma relação entre movimento e desvio, com relacionamento muitos movimentos para cada desvio (pois a FK id_movimento está em desvio).
Assim sendo, você deve criar um alias
criteria.createAlias("desv", "desvio");
Isso atribuirá à query a ser construída que a propriedade desvio possui o alias desv.
Agora to com outra dúvida, tenho que adicionar um Restrictions no criteria no qual o valor de uma determinada coluna tem que ser diferente de 0 como faço isso?
criteria.add(Restrictions.not(“coluna”, 0)) = para selecionar os valores de “coluna” DIFERENTES de 0
criteria.add(Restrictions.gt(“coluna”, 0)) = para selecionar os valores de “coluna” MAIORES QUE 0
criteria.add(Restrictions.lt(“coluna”, 0)) = para selecionar os valores de “coluna” MENORES QUE 0
[quote=drsmachado]criteria.add(Restrictions.not(“coluna”, 0)) = para selecionar os valores de “coluna” DIFERENTES de 0
criteria.add(Restrictions.gt(“coluna”, 0)) = para selecionar os valores de “coluna” MAIORES QUE 0
criteria.add(Restrictions.lt(“coluna”, 0)) = para selecionar os valores de “coluna” MENORES QUE 0[/quote]