Olá amigos, depois de olhar diversos exemplos, ainda não consegui resolver esse problema. Tenho uma classe ProgramaUnidade que é extend de uma classe Programa, o id da classe Programa é FK na classe ProgramaUnidade, só que essa mesmo FK tem que compor a PK da mesma classe ProgramaUnidade.
Vlw a atenção.
Minhas classes estão assim:
Programa
@Entity(name="t_programa")
@Inheritance(strategy=InheritanceType.JOINED)
@MappedSuperclass
public class Programa {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="programa")
@SequenceGenerator(name="programa", sequenceName="seq_programa", allocationSize=1)
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
ProgramaUnidade
@Entity(name = "t_programaunidade")
public class ProgramaUnidade extends Programa {
@Column(columnDefinition="NUMBER(1,0)")
@NotEmpty(message = "Status deve ser informado!!")
private int status;
@Temporal(TemporalType.TIMESTAMP)
@NotEmpty(message = "Data de vigencia não nula")
private Date dataVigencia;
@ManyToOne
@JoinColumn(name="programa_id")
@ForeignKey(name="FK_PROGR_PROGR_UNIDADE")
private Programa programa;
public Programa getPrograma() {
return programa;
}
public void setPrograma(Programa programa) {
this.programa = programa;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Date getDataVigencia() {
return dataVigencia;
}
public void setDataVigencia(Date dataVigencia) {
this.dataVigencia = dataVigencia;
}
}