Update em relacionamento ManyToMany

Olá pessoal!

Tenho um relacionamento ManyToMany entra uma entidade pessoa e outra telefone.
Mapeiei na entidade pessoa da seguinte maneira:

@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)	
	@JoinTable(name = "TB_PESSOA_TELEFONE", joinColumns = @JoinColumn(name = "ID_PESSOA", referencedColumnName = "ID_PESSOA"), inverseJoinColumns = @JoinColumn(name = "ID_TELEFONE", referencedColumnName = "ID_TELEFONE"), uniqueConstraints = @UniqueConstraint(columnNames = {
			"ID_PESSOA", "ID_TELEFONE" }))
	private List<Telefone> telefones;

Dessa maneira no momento em que eu atualizava esses valores, notei que no banco não deletava o antigo valor da tabela de telefones, ou seja, insere o novo valor e o mapeamento de IDs na tabela do relacionamento mudava para o ID desse novo valor.

Pesquisei um pouco e adicionei a seguinte anotação

E agora após o merge os valores antigos são removidos do banco, gostaria de saber de vocês se eu fiz algo de errado anteriormente, pois acredito que somente com o CascadeType.ALL era o suficiente para atualizar o valor.

cara,

o CascadeType.ALL ele não faz isso, tanto que na versão 2 do JPA eles adicionaram a opção orphanRemoval.

t+