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