Olá como faço para fazer um @JoinColumn de classes com relacionamento @OneToMany ex:
Classe Palestrante
@Entity
@DiscriminatorValue(value="PALESTRANTE")
public class Palestrante extends Pessoa {
@Column(name="CPF", length=12, nullable=false, unique=true)
private String cpf;
@Column(name="FORMACAO", length=150)
private String formacao;
@Column(name="ESPECIALIDADE", length=150)
private String especialidade;
@Column(name="OBS", length=200)
private String obs;
@JoinColumn(name="FK_PALESTRA", referencedColumnName="ID_PALESTRA")
@OneToMany
private Set<Palestra> palestra; //o ERRO ESTA AQUI
public Palestrante() {
}
public Palestrante(String nome,
String cpf,
String formacao,
String especialidade,
String obs,
Set<Palestra> palestra) {
super(nome);
this.cpf = cpf;
this.formacao = formacao;
this.especialidade = especialidade;
this.obs = obs;
this.palestra = palestra;
}
}
Classe Pessoa:
@Entity(name="PESSOA")
public abstract class Pessoa {
@Id
@GeneratedValue
@Column(name="ID_PESSOA")
private Long id;
@Column(name="NOME_PESSOA", length=60, nullable=false, unique=true)
private String nome;
public Pessoa() {
}
public Pessoa(String nome) {
super();
this.nome = nome;
}
}
Classe Palestra
@Entity(name="PALESTRA")
public class Palestra {
@Id
@GeneratedValue
@Column(name="ID_PALESTRA")
private Long id;
}
Quando tento criar o banco ele me gera o seguinte erro:
Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.MappingException: Unable to find column with logical name: ID_PALESTRA in org.hibernate.mapping.Table(PESSOA) and its related supertables and secondary tables
Alguém sabe o que pode ser??