Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Relacionamento Bidirecional e Entity Manager

Boa noite!

Por que nos testes não foi usado em.getTransaction().commit(); e em.close();?

@braço!

2 respostas
soluçã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!