1
resposta

em.find() & set.getId() Trazem o mesmo Resultado?

Executando os comandos em.find(Conta.class, 1) ou set.getId(1) ambos me traria o resultado em sintaxe SQL = "SELECT * FROM CONTA WHERE ID = 1"???

1 resposta

Oi jamonteirolima, tudo certo?

Então, quando fazemos

    em.find(Conta.class, 1);

estamos chamando o método find() do objeto em que é um EntityManager. O EntityManager não possui um método getId() ou setId() - esses métodos são de nossa classe Conta.

Então, quando chamamos o método find() do EntityManager, ele vai procurar no banco de dados essa informação e, portanto, executar o selectno banco. Já quando fazemos conta.getId(), estamos pegando o valor do atributo id do objeto conta - aqui não busca no banco de dados.

Além do mais, o find vai retornar um objeto do tipo Conta e o getId()da Conta vai devolver um Long.

Espero ter ajudado e bons estudos!