Boa noite Rodrigo.
Assistindo e realizando o curso até aqui, ficou uma dúvida.
O "flush()" que sincroniza/atualiza o banco de dados, mas ele também faz o "commit" na base? Me refiro, na ausência de se explicitar uma linha com "em.commit()" e fechar a entity manager no final (em.close()) ?
Por exemplo, se eu tivesse apenas o trecho de código abaixo, onde ao final há a instrução "em.flush()" e na sequencia "em.close()", o banco de dados seria sensibilizado com a informação "XPTO 2", "CELULARES" ou nada ? Digo se, após terminar o programa ir na base e abrir a tabela, o que haveria de dado gravado?
Categoria celulares = new Categoria("CELULARES");
EntityManager em = JPAUtil.getEntityManager();
em.getTransaction().begin();
em.persist(celulares);
em.flush();
celulares.setNome("XPTO");
celulares = em.merge(celulares);
celulares.setNome("XPTO 2");
em.flush();
// em.getTransaction().commit();
em.close();
Obrigado.