Não sei se entendi direito, mas me parece que você quer usar os operadores >,>=, <,<= …
Eu tenho usado numa boa sim, segue um exemplo de codigo que uso,
usando o operador diferente “<>”
Query q = manager.createQuery("SELECT h FROM Hierarquia as h WHERE h.id.idLocalSuperior =:idLocalSuperior " +
"AND h.id.idEstrutura =:idEstrutura "+
"AND h.id.idLocalReferencia <> :idLocalReferencia");
q.setParameter("idLocalSuperior", idLocalSuperior);
q.setParameter("idEstrutura", idEstrutura);
q.setParameter("idLocalReferencia", idLocalSuperior);
Usando o operador AND , igual “=”
public boolean possuiHierarquiaSuperior(int idLocalReferencia, int idEstrutura) {
boolean retorno = false;
Hierarquia hier = new Hierarquia();
Query q = manager.createQuery("SELECT h FROM Hierarquia as h WHERE h.id.idLocalReferencia = :idLocalReferencia " +
"AND h.id.idLocalSuperior <> :idLocalSuperior "+
"AND h.id.idEstrutura = :idEstrutura "+
"AND h.visualizacao = 'HIERARQUICO' ");
q.setParameter("idLocalReferencia", idLocalReferencia);
q.setParameter("idLocalSuperior", idLocalReferencia);
q.setParameter("idEstrutura", idEstrutura);
if ( q.getResultList().size() == 1 ) {
retorno = true ;
}else {
retorno = false;
}
return retorno;
}
Espero ter ajudado.
Marco Aurélio
[email removido]