Criteria para acessar atributos de tabelas que não possuem relacionamento direto

Galera é o seguinte, eu quero fazer uma consulta em JAVA utilizando o criteria

Se falta, vai ter que criar a associação.

Por que se complicar se é mais prático e eficiente escrever SQL diretamente? Mapeando o resultado diretamente para uma classe específica que atenda essa funcionalidade de consulta. Inclusive o SQL você já fez.

É mais importante atender a funcionalidade do cliente ou o padrão de tecnologia engessado?

Criteria trabalha em cima das associações mapeadas com o modelo orientado a objetos. Já que você é o origado a usar Criteria, por que não cria a associação que falta?