Fiquei com uma dúvida de como arquitetar o repository no caso se eu usar o Spring JPA, por que no Sprint JPA, basta criar uma interface que implemente a interface do Spring, que o Spring cria a implementação em momento de execução, nesse caso para separar as camadas do Domain com o Infra, para ter apenas a inteface no domain e a implementação no infra, eu deveria evitar o uso do Spring JPA ou no Spring da de separar a implementação tbm?