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;