Como ativar a multilocação com o Spring Data Jpa

Fundo : Estou construindo um aplicativo SaaS com vários locatários e escolhi o banco de dados único, o esquema compartilhado como a abordagem de multilocação. Cada tabela possui uma coluna discriminadora "tenantId" para isolar os dados do inquilino. Estou usando o boot de primavera como a estrutura do aplicativo e aproveitando o jpa de dados do spring para a camada de dados com o Hibernate como provedor de JPA. Gosto muito da maneira como os dados da primavera ajudam a eliminar o código padrão e atualmente codificamos os repositórios como abaixo,

@Repository
public interface UserRepository extends JpaRepository<User,Long>{

}

e serviços como abaixo,

public class UserService{
    @Autowired
    private UserRepository userRepo;
    public User getUser(){
        User user = userRepo.findOne(id);
    }
}

Declaração do problema:&nbsp;Quando eu quero obter usuário, quero obter o usuário para uma organização específica. Eu estou querendo saber como adiciono os critérios de inquilino, não quero escrever implementações de repositório personalizadas, pois isso introduzirá o código padrão.

Soluções tentadas:

i) Hibernate Interceptor - onPrepareStatememt: Isso não é útil, pois o sql é uma string e eu não quero fazer manipulação de strings.

ii) Habilitando filtros de hibernação com Spring AOP: entidade anotada com @Filter e tentei configurar o filtro na sessão. Isso não funciona, pois o aspecto nunca é chamado.

@AfterReturning(pointcut = "execution(* org.hibernate.jpa.internal.EntityManagerImpl.OpenSession(..))", returning = "session")
public void forceFilter(JoinPoint joinPoint, Object session) {

    Session hibernateSession = (Session) session;
    session.enableFilter("tenantFilter")
}

Os filtros de hibernação parecem uma abordagem promissora, mas eu meio que bati na parede tentando colocar uma solução funcional. Gostaria de saber se existe uma abordagem alternativa para ativar o filtro de hibernação na sessão que os dados do Spring usam internamente para consultar os dados.