Não ficou muito claro pra mim essa diferença Flush x Commit e Clear x Remove.
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!
Não ficou muito claro pra mim essa diferença Flush x Commit e Clear x Remove.
O flush sincroniza os dados com o banco, ele salva mas não efetua o commit, ou seja, a transação ainda não terminou e pode ser desfeita fazendo um rollback caso ocorra uma exceção, por exemplo. Costuma-se usar por vezes para já pegar o "id" que foi salvo no banco para aquele registro salvo e utilizá-lo logo em seguida em outro ponto do código.
O commit já salva e termina a transação, não é possível fazer o rollback.
E o clear e remove? Qual a diferença?
Oi Caroline,
remove -> Utilizado para excluir uma entidade do banco de dados.
clear -> utilizado para remover as entidades do estado managed do entitymanager(apenas em memoria, nao vai afetar nada no banco de dados)
Na prática o método clear raramente será necessário de utilizar nos projetos.
Bons estudos!