E aí, galerinha, tudo bem?
Tô com um problema para desenvolver a herança com Annotations destas tabelas:
[code]CREATE TABLE PESSOA (
ID BIGINT NOT NULL PRIMARY KEY,
NOME VARCHAR(50) NOT NULL);
CREATE TABLE SEXO (
ID BIGINT NOT NULL PRIMARY KEY,
NOME VARCHAR(10) NOT NULL);
CREATE TABLE FUNCIONARIO (
PESSOA BIGINT NOT NULL PRIMARY KEY,
MATRICULA VARCHAR(10) NOT NULL,
SEXO BIGINT NOT NULL,
FOREIGN KEY (PESSOA) REFERENCES PESSOA(ID),
FOREIGN KEY (SEXO) REFERENCES SEXO(ID));
CREATE TABLE USUARIO (
FUNCIONARIO BIGINT NOT NULL PRIMARY KEY,
APELIDO VARCHAR(20) NOT NULL,
SENHA VARCHAR(15) NOT NULL,
FOREIGN KEY (FUNCIONARIO) REFERENCES FUNCIONARIO(PESSOA));[/code]
Tô fazendo assim, mas me dá erro na consulta. Diz que o campo SEXO na entidade USUARIO não existe.
[code]@Entity
@Table(name=“PESSOA”)
@Inheritance(strategy= InheritanceType.TABLE_PER_CLASS)
@DiscriminatorColumn(discriminatorType= DiscriminatorType.STRING, name=“NOME”)
@SequenceGenerator(initialValue=1, sequenceName=“SEQ_PESSOA”, name=“s”)
public class Pessoa implements Serializable {
@Id
@Column(name="ID")
@GeneratedValue(strategy= GenerationType.SEQUENCE, generator="s")
private long ID;
@Column(name="NOME", length=100, nullable=false)
private String nome;
}
@Entity
@Table(name=“FUNCIONARIO”)
@Inheritance(strategy= InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(discriminatorType= DiscriminatorType.STRING, name=“NOME”)
@DiscriminatorValue(“FUNCIONARIO”)
public class Funcionario extends Pessoa {
@Column(name="CNPJ", length=20, nullable=false)
private String matricula;
@ManyToOne
@JoinColumn(name="SEXO")
private Sexo sexo;
}
@Entity
@Table(name=“USUARIO”, schema=“estoque”)
@DiscriminatorValue(“USUARIO”)
public class Usuario extends Funcionario {
@Column(name="APELIDO", length=20, nullable=false)
private String apelido;
@Column(name="SENHA", length=15, nullable=false)
private String senha;
}[/code]
Alguém sabe o que pode ser?
Valeu, galera,
fiquem com Deus! 