Boa noite!
Por que nos testes não foi usado em.getTransaction().commit(); e em.close();?
@braço!
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!