Duvida sobre violação de Camadas + J2EE

É 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.

Olá shoes, como ficaria a interface de uma Specification neste caso?