Não remove pelo JPA

Galera, to tentando remover um registro pelo metódo remove e não dá erro mas também não remove

Eu recupero legal com outro método e passo o objeto cadastro completo com as informações, o método abaixo então executa dá tudo ok, mas não faz nada, alquém sabe onde está o erro??

[code]public void removerRegistro(Cadastro cadastro)
{
factory = Persistence.createEntityManagerFactory("exfuncionarios");
manager = factory.createEntityManager();
System.out.print("Excluindo registro… ");
EntityTransaction tx = manager.getTransaction();
tx.begin();
try
{
Cadastro cad = merge(cadastro);
manager.remove(cad);

			tx.commit();
			System.out.println("OK");
			manager.close();
			factory.close();
		} 
		catch (RuntimeException e) // <-- importante, agora é runtime
		{ 
			e.printStackTrace();
			tx.rollback();
		}
	}[/code]

tenta chamar manager.flush() logo apos o commit. Isto deve resolver seu problema.

Att.

Tenho que usar o merge?? qual a função dele?

Quando coloquei a linha

ele criou o código vazio

private Cadastro merge(Cadastro cadastro) 
	{
		
		return null;
	}

quando rodo dá o erro

[color=“red”]
java.lang.IllegalArgumentException: Entity must be managed to call remove: modelo.Cadastro@60e128, try merging the detatched and try the remove again.
at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.performRemove(UnitOfWorkImpl.java:2747)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerImpl.remove(EntityManagerImpl.java:199)
at modelo.DAO.CadastroDAO.removerRegistro(CadastroDAO.java:70)
at controle.Principal.main(Principal.java:14)
[/color]

coloquei a linha q vc me disse, mas deu o erro acima com ou sem ela