Boa tarde. Qual a diferença em usar o getOne() e o findById()
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa tarde. Qual a diferença em usar o getOne() e o findById()
Oi Rodrigo,
O getOne, por baixo dos panos, utiliza o método getReference da JPA, que carrega a entidade de maneira LAZY.
Já o findById utiliza o método find, que carrega a entidade de maneira EAGER.
Na pratica se usa o getOne se você apenas quer carregar uma entidade para associá-la a outra, sem de fato acessar os atributos dela. Ex:
Cliente c = clientesRepository.getOne(idCliente);
pagamento.setCliente(c);
pagamentosRepository.save(pagamento);
Repare no código anterior que o cliente foi carregado apenas para ser atribuído ao objeto pagamento, que é o caso de utilização do método getOne.
Bons estudos!
obrigado pela explicação.