Olá. É obrigatório o uso do mesmo nome para campo id quando o id da segunda tabela é um FK?
Exemplo:
- tabela pessoa: id_pessoa (PK)
- tabela aluno: id_aluno (PK, FK(id_pessoa))
Ou seja, em Java:
[code]@Entity
@Table(name = “pessoa”, uniqueConstraints = {
@UniqueConstraint(columnNames = {“cpf”})})
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = “tipo”, length = 1)
@XmlRootElement
@NamedQueries(…)
public abstract class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = “id_pessoa”, nullable = false)
private Long idPessoa;
[/code]
[code]@Entity
@Table(name = “aluno”)
@DiscriminatorValue(value = “A”)
@XmlRootElement
@NamedQueries(…)
public class Aluno extends Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
// @Id
// @Basic(optional = false)
// @NotNull
// @Column(name = “id_aluno”, nullable = false)
// private Long idAluno;
[/code]
Não posso criar o BD desta forma? Será que tenho que colocar o nome de id_pessoa na tabela aluno para funcionar um insert?
Estou perguntando porque me deparei com o caso em que tento setar um id para aluno (que é o mesmo de pessoa) e por causa da anotação JPA
@Column(name = “id_pessoa”)
na classe Pessoa não consigo fazer o insert de Aluno no banco.
Att.