Não ficou muito claro pra mim essa diferença Flush x Commit e Clear x Remove.
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!