Boa tarde. Qual a diferença em usar o getOne() e o findById()
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.