Criteria com instanceof

Pessoal,

É possível fazer uma consulta usando Criteria de preferência onde eu possa especificar o tipo de instancia do objeto?
por exemplo:

Tenho uma classe A que tem como atributo a classe B.
Tenho a classe C e D que são subclasses da classe B.

Sendo assim o atributo ‘B’ da minha classe A pode ser tanto objetos do tipo C quanto do tipo D.

Preciso em uma criteria fazer um select na classe A onde o atributo B seja instanceof C por exemplo…
Tem como?

Não sei seu entendi muito bem, mas com HQL vc pode fazer assim:

Query q = getEntityManager().createQuery("SELECT a FROM  A a WHERE a.b.idB = :idB" AND a.b.c.idC = :idC);

q.setParameter("idB", objetoB.getIdB());
q.setParameter("idB", objetoB.getC().getIdC());