JPA merge para OnetoMany com orphalRemove=true não faz UPDATE funciona bem com PERSIST?

Vou explicar bem resumido para não deixar este POST cheio de informação

Quando utilizo a anotação OneToMany(orphanRemoval=true) para persistir um dado, ele insere no banco numa boa.
Após inserido vou Edita-lo e ao fazer o MERGE faço o seguinte:

utilizo o orphanRemoval para remover tudo e inserir dinovo novos EMBEDDED

Verificador verificador = entity.find(.....); // Tenho em mãos a Classe 
verificador.getIntervalos().clear(); // Limpo os Intervalos da ArrayList  para inserir os outros novos 

for (int i = 0; hoursByInterval != null &&  i < hoursByInterval.length; i++) {
			Intervalo intervalo = new Intervalo(verificador, hoursByInterval[i]);
                        verificador.getIntervalos().add(intervalo);
}

entityManager.merge(verificador);

entityManager.getTransaction().commit();

Estou usando @embedded e nao GeneratedValue
pois somente 2 chaves são importantes no Intervalo seria o VERIFICADOR_ID e HORARIO
a inserção ocorre assim

1, 20.00 // ID , horario em FLOAT
1, 20.30
1, 21.00
1, 21.30

Mas ao dar o Commit alterando os dados do Intervalo ocorre um erro que não sei como resolver isso … :frowning:

Exception:

java.lang.IllegalStateException: An entity copy was already assigned to a different entity.
	at org.hibernate.event.internal.EventCache.put(EventCache.java:184)
	at org.hibernate.event.internal.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:285)
	at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:151)
	at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:910)
	at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:892)
	at org.hibernate.engine.spi.CascadingAction$6.cascade(CascadingAction.java:288)
	at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:380)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:208)
	at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:409)
	at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:350)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:326)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:208)
	at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:165)
	at org.hibernate.event.internal.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:439)
	at org.hibernate.event.internal.DefaultMergeEventListener.entityIsPersistent(DefaultMergeEventListener.java:183)
	at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:157)
	at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:76)
	at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:900)
	at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:884)
	at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:888)
	at org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:879)

Meu Código Resumidamente está abaixo:

[code]Classe Verificador{
@OneToMany(orphanRemoval=true,mappedBy=“verificador”,cascade=CascadeType.ALL)
private List intervalos;

Classe Intervalo {
@EmbeddedId
private IntervaloPK pk;

@ManyToOne
@JoinColumn(name="VERIFICADOR_ID",referencedColumnName="VERIFICADOR_ID", nullable=false, insertable=false, updatable=false)
private Verificador verificador

}

@Embeddable
public class IntervaloPK implements Serializable {

@Column(name="VERIFICADOR_ID", nullable=false)
private Long verificadorId;


@Column(name="HORARIO_INTERVALO", nullable=false,precision=2,scale=2)
private float horario;

};[/code]

Por favor se puder me ajudar !
Abrs!

Ninguem manja ?

Please help !