Olá tenho a seguinte situação
Uma tabela chamada PostoOperativo e uma tabela Chamada AtributoPostoOperativo
até ai tudo bem... o problema é que preciso criar uma tabela de relacionamento PostoOperativoAtributoPostoOperativo onde a chave primaria vai ser uma chave composta com duas chave estrangeiras uma pra PostoOperativo outra Para AtributoPostoOperativo.
Estou tentando da seguinte forma PostoOperativo:@Entity
@Table(name = "posto_operativo")
public class PostoOperativo implements Serializable {
//outros campos id, descricao etc...
...
@OneToMany(mappedBy = "id.postoOperativo", targetEntity = PostoOperativoAtributoPostoOperativo.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<PostoOperativoAtributoPostoOperativo> postoOperativoAtributoPostoOperativo;
//GetSet
..
}
@Entity
@Table(name = "atributo_posto_operativo")
public class AtributoPostoOperativo implements Serializable {
//outros campos id, descricao etc...
...
@OneToMany(mappedBy = "id.atributoPostoOperativo", targetEntity = PostoOperativoAtributoPostoOperativo.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<PostoOperativoAtributoPostoOperativo> postoOperativoAtributoPostoOperativo;
//GetSet
}
@Entity
@Table(name = "posto_operativo_atributo_posto_operativo")
public class PostoOperativoAtributoPostoOperativo implements Serializable {
private static final long serialVersionUID = 8531587574211341692L;
@EmbeddedId
private PK id;
//outros campos....
@Embeddable
public static class PK implements Serializable {
private static final long serialVersionUID = -867288886433637819L;
@ManyToOne(fetch = FetchType.EAGER)
@NotNull(message = "Campo 'posto operativo' deve ser preenchido.")
@JoinColumn(name = "posto_operativo_id", nullable = false)
private PostoOperativo postoOperativo;
@ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.MERGE,
CascadeType.PERSIST, CascadeType.REMOVE })
@NotNull(message = "Campo 'atributo posto operativo' deve ser preenchido.")
@JoinColumn(name = "atributo_posto_operativo_id", nullable = false)
private AtributoPostoOperativo atributoPostoOperativo;
//getsets...
}
}
Preciso que ao salvar/alterar/excluir os itens de posto operativo ele faça as alteraçoes necessarias na tabela de relacionamento.
qndo tento alterar o postoOperativo colocando novos itens ou removendo ou deixando como esta mesmo... ele parece que entra em loop e da stackoverflow