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"???
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!
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"???
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!