Bom dia!
Gostaria de mapear um relacionamento ManyToMany Com Atributos, só não sei exatamente como fazer isso. O que estou fazendo de errado? Segue o código abaixo:
Classe Cronograma
[code]@Entity
@Table(name = “tb_cronograma”)
public class Cronograma implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="num_ano", nullable=false)
private Long numeroAno;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="dth_cadastro", nullable=false)
private Date dataCadastro;
//gets e sets
}[/code]
Classe Etapa
[code]@Entity
@Table(name = “tb_etapa”)
public class Etapa implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="cod_etapa", nullable=false)
private Long codigo;
@Column(name="dsc_etapa", nullable=false)
private String descricao;
//gets e sets
}[/code]
Classe CronogramaEtapaPk
[code]@Embeddable
public class CronogramaEtapaPk implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "cod_etapa", nullable = false)
private Long codigoEtapa;
@Column(name = "num_ano", nullable = false)
private Long numeroAno;
}[/code]
Classe CronogramaEtapa
[code]@Entity
@Table(name = “tb_cronograma_etapa”)
public class CronogramaEtapa implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private CronogramaEtapaId cronogramaEtapaPk;
@ManyToOne
@JoinColumn(name = "cod_etapa", referencedColumnName = "cod_etapa", insertable = false, updatable = false, nullable = false)
private Etapa etapa;
@ManyToOne
@JoinColumn(name = "num_ano", referencedColumnName = "num_ano", insertable = false, updatable = false, nullable = false)
private Cronograma cronograma;
@Temporal(TemporalType.DATE)
@Column(name="dat_inicial_etapa", nullable=false)
private Date dataInicialEtapa;
@Temporal(TemporalType.DATE)
@Column(name="dat_final_etapa", nullable=false)
private Date dataFinalEtapa;
//gets e sets
}
[/code]
OBS.: A tabela etapa já está definida (code table). Ao salvar um CronogramaEtapa, caso não exista o registro na tabela Cronograma, este deve ser persistido. Agradeço a Ajuda.