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.