Dados JPA da primavera com cláusula where dinâmica

Eu tenho um repositório de base, digamosIBaseRepository qual é

public interface IBaseRepository<T extends BaseEntity<PK>, PK extends Serializable>
      extends JpaRepository<T, PK>, JpaSpecificationExecutor<T>  {
}

agora toda classe de repositório, por exemploUserRepository estende deste repositório base. Como posso adicionar um método geral como

T findOne(String filter, Map<String, Object> params);

para todas as classes herdadas, para que a chamada

Map<String,Object> params = new HashMap<String,Object>();
params.put("username","Lord");
params.put("locked",Status.LOCKED);
userRepo.findeOne("username = :username AND status = :locked",params);

devolva-me um único registro com a cláusula where dinâmica.

questionAnswers(1)

yourAnswerToTheQuestion