É justamente o que tento fazer, o problema é que a unica coisa que minha interface tem em relacao ao pattern specification é o nome. Meu Repositorio tem um metoto chamado findBySpecification(Specification s) e dentro desse metodo eu faco um casting para uma implementacao especifica do Hibernate, que cria e retorna um criteria, como eu comentei no meu post anterior.
É melhor do que inchar a interface do repositorio com dezenas de metodos de consulta, mas ainda nao consegui acertar esse ponto.