Olá Pessoal, bom dia!
Estou com um problema na minha aplicação, eu preciso fazer uma relação unidirecional da Tabela Curso para ela mesma (ManyToMany), a idéia é que um curso tem outros cursos como pré-requisitos. Fiz a implementação porém o JPA não insere na tabela intermediária, ela sempre fica null. Segue a entidade e as tabelas.
@Entity
@Table(name="CURSO")
public class Curso implements Serializable>{
private static final long serialVersionUID = 1L;
@Id
@Column(name="ID_CURSO")
private int idCurso;
// outros campos
@ManyToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL)
@JoinTable(name="PRE_REQUISITO",
joinColumns=@JoinColumn(name="ID_CURSO"),
inverseJoinColumns=@JoinColumn(name="ID_CURSO_REQUISITO"))
private Set<Curso> preRequisitos;
Tabelas:
CREATE TABLE CURSO(
ID_CURSO numeric(8) identity(1,1) NOT NULL,
........
)
;
ALTER TABLE CURSO ADD CONSTRAINT PK_CURSO
PRIMARY KEY CLUSTERED (ID_CURSO)
;
[/code][code]
CREATE TABLE PRE_REQUISITO (
ID_CURSO numeric(8),
ID_CURSO_REQUISITO numeric(8)
)
;
ALTER TABLE PRE_REQUISITO ADD CONSTRAINT FK_PRE_REQUISITO_CURSO
FOREIGN KEY (ID_CURSO) REFERENCES CURSO(ID_CURSO)
;
ALTER TABLE PRE_REQUISITO ADD CONSTRAINT FK_PRE_REQUISITO_CURSO2
FOREIGN KEY (ID_CURSO_REQUISITO) REFERENCES CURSO(ID_CURSO)
;
Ao persistir uma entidade Curso com 2 outros cursos como pré-requisito, o cascade funciona porém a tabela PRE_REQUISITO está em branco.
Alguem ja passou por isso?
Obrigado,