Solucionado (ver solução)

Importante

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!

Solucionado
(ver solução)
2
respostas

getOne vs findById

Boa tarde. Qual a diferença em usar o getOne() e o findById()

2 respostas

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!

solução!

obrigado pela explicação.