Erro ao persistir Com Hibernate

Boa tarde.
Tenho 2 classe que referenciam duas tabelas. Eu salvo a classe EstruturaAlcada, que tem Uma lista de AlcadaEstruturaAlcadas de Alcada com uma Alcada. Até ai tudo bem se todos os dados forem novos ou sejam ainda não estiverem no banco. Mas se já estiver uma Alcada cadastrada ao invés de Salvar uma nova Alcada, eu vou apenas salvar a Estrutura e a AlcadaEstruturaAlcadas e referenciar a Alcada existente e ai recebo o erro abaixo.

detached entity passed to persist: br.com.model.entity.Alcada

Classe EstruturaAlcada
> Entity
> @Table(name = “TESAL_ESTRUTURA_ALCADA”)
> @SequenceGenerator(name = “SQ_ESAL”, sequenceName = “SQ_ESAL”, allocationSize = 1)
> public class EstruturaAlcada extends BaseEntity {

>     @Id
>     @Column(name = "ESAL_SEQ_CHAVE", nullable = false, unique = true)
>     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SQ_ESAL")
>     private Long codigo;

>     @Column(name = "ESAL_ENU_ATIVO", nullable = false)
>     private Character ativo;

>     @Column(name = "ESAL_DATA_CADASTRO", nullable = false)
>     private Date dataCadastro;

>     @ManyToOne(fetch = FetchType.EAGER)
>     @JoinColumn(name = "USUA_SEQ_CHAVE", nullable = false)
>     private Usuario usuario;

>     @OneToMany(mappedBy = "estruturaAlcada", cascade = CascadeType.ALL, fetch =FetchType.LAZY)
>     private List<AlcadaEstruturaAlcada> alcadaEstruturaAlcadas;

Classe AlcadaEstruturaAlcada

> @Entity
> @Table(name = "TALEA_ALCADA_ESTRUTURA_ALCADA")
> @SequenceGenerator(name = "SQ_ALEA", sequenceName = "SQ_ALEA", allocationSize = 1)
> public class AlcadaEstruturaAlcada extends BaseEntity {

>     @Id
>     @Column(name = "ALEA_SEQ_CHAVE", nullable = false, unique = true)
>     @GeneratedValue (strategy = GenerationType.SEQUENCE, generator ="SQ_ALEA")
>     private Long codigo;

>     @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
>     @JoinColumn(name = "ESAL_SEQ_CHAVE", nullable = false)
>     private EstruturaAlcada estruturaAlcada;

>     @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.REFRESH},  fetch = FetchType.EAGER)
>     @JoinColumn(name = "ALCA_SEQ_CHAVE", nullable = false)
>     private Alcada alcada;

>     @Column(name = "ALEA_NIVEL", nullable = false)
>     private Integer nivel;

Se o objeto alcada não tiver sofrido alteração, você pode chamar um merge para recolocar o mesmo na sessão do hibernate (ATENÇÃO: o merge faz alteração no banco caso algum atributo tenha sido alterado).

Lucas o caso é que não tenho acesso as classes de persistência pra chamar o merge. Tenho apenas a opção de Salvar, Alterar, Excluir e Buscar.

Você pode tentar buscar novamente o objeto pelo ID e atribuir na mesma variável.

Já tentei isso. No momento de salvar eu busco ele pelo ID. Mesmo assim ainda da esse erro.