Verificar no banco sem disparar Exception

pessoal to usando o hibernate pra persistir os meus dados no banco…
acontece que tem uns dados q eu presiso verificar e se tiver remover do banco, e dar prosegmento a função…

so que sempre dispara uma Exception

o meu codigo é esse:

    em = getEntityManager();
    em.getTransaction().begin();

    Admins Admins = new Admins();
    Funcionario funcionario= new Funcionario ();
    Query q = em.createQuery("from Admins where funcionario_id = '"+id+"'");
    if (q.getSingleResult() != null){
        admin = (Admins) q.getSingleResult();
        em.remove(admin);
    }
    q = em.createQuery("from Funcionario where id = '"+id+"'"); 
    funcionario= (Funcionario) q.getSingleResult();
    em.remove(funcionario);
    em.getTransaction().commit();        		

getSingleResult ele dispara duas exception por padrão. Uma caso não encontre ninguém e outra para caso encontre mais que um resultado.

Dá uma olhada aqui: JPA Consultas e Dicas.

existe outro método que me retorne null, ou algo do tipo, caso ele ñ encontre nada na tabela persistida?

[quote=carlos_chea]existe outro método que me retorne null, ou algo do tipo, caso ele ñ encontre nada na tabela persistida?[/quote]Só se for na gambiarra. Utilizar o getResultList e veja se a lista está vazia. ^^

Use getResultList e veja se o resultado esperado tem 0, 1 ou mais resultados. Se for zero, não achou, se for maior que 1, tem mais resultados que o esperado, e se for 1, fica do jeito que você quer.

Obrigado entanglement!!! resolveu o meu problema!!!