Boa noite!
Por que nos testes não foi usado em.getTransaction().commit(); e em.close();?
@braço!
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!
Boa noite!
Por que nos testes não foi usado em.getTransaction().commit(); e em.close();?
@braço!
Olá Joás!
Quando usamos o commit() estamos salvando os dados no banco de forma permanente com todas as alterações feitas na transação.
Em ambientes de testes não queremos persistir os dados, só queremos testá-los. Por isso não é usado.
Outro motivo também se dá ao fato de que nesse exercício o professor fez um select, logo não há alterações para serem "commitadas".
Já no caso do close() acredito que segue a mesma linha de raciocínio. Fecharíamos uma transação caso quiséssemos fazer um commit ou iniciar outra transação. Como nenhuma das opções se encaixam podemos encerrar o teste que a transação será cancelada.
Espero que tenha ajudado!
Bons estudos.
Bom dia!
Entendi.
Não sabia que a transação só precisaria ser fechada se fosse fazer um commit, também não sabia que a mesma é cancelada automaticamente quando o teste é encerrado.
Obrigado!