Erro Login - JPA: TopLink 2.1
Boa tarde pessoal ando com um problema no login de uma superclasse que não consigo entender o que ocorre. Desenvolvi um sistema utilizando JSF 1.2 + RICHFACES 3.3.3, banco Postgres 8.1 java EE 5, framework de persistência: TopLink V.2.1.
Na epoca usando netbeans versao 6.1. Ocorre que migrei o projeto para o netbeans 8.1, precisei mudar o banco pro postgres 9.4 ja que meu instalador em questão não consegui instalar mais no windows 7, tudo corria bem até então sem porens. Tenho uma classe usuário (superclasse) e 3 classes de herança Aluno e Administrado e professor quando tento realizar o login recebo o seguinte erro:
**Internal Exception: org.postgresql.util.PSQLException: ERROR: column "alu_ra" does not exist Dica: Perhaps you meant to reference the column "usuario.usu_rg". Posição: 174 Error Code: 0 Call: SELECT usu_id, usu_tipo, usu_senha, usu_status, usu_rg, usu_data, usu_email, usu_hora, usu_fone_principal, usu_perfil_acesso, usu_data_nascimento, usu_ip, usu_fone_celular, alu_ra, usu_login, usu_fone_recado, usu_nome, pro_titulacao, pro_area_atuacao, adm_funcao FROM usuario WHERE (usu_login = ?) bind => [admin] Query: ReportQuery(negocio.classes.Usuario)**
A classe aluno possui apenas um atribuno alu_ra (justamente o que ele diz não existir em Usuário), e a classe administrador possui o atributo função. Classe professor tem "areaAtuacao, e titulacao".
SERA QUE FALTA ALGO A SER ESPECIFICADO QUE NÃO ME ATENTEI?
ABAIXO AS CLASSES
Minha **classe usuário**:
package negocio.classes;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
/**
*
* @author sperta
*/
@Entity
@Table(name = "usuario")
//determina um relacionamento de Herança com a definicao do tipo de estrategia usada por hierarquia [strategy: (tabela por hierarquia, tabela por classe ou tabela por sublasse).]
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
//@Inheritance(strategy=InheritanceType.JOINED)
//declara qual é o campo da tabela que determina o tipo do objeto , no caso Tipo sera {Administrador= D, Aluno=A ou Professor=P}
@DiscriminatorColumn(name="usu_tipo")
@NamedQueries({@NamedQuery(name = "Usuario.findByUsuId", query = "SELECT u FROM Usuario u WHERE u.usuId = :usuId"),
@NamedQuery(name = "Usuario.findByUsuRg", query = "SELECT u FROM Usuario u WHERE u.usuRg = :usuRg"),
@NamedQuery(name = "Usuario.findByUsuNome", query = "SELECT u FROM Usuario u WHERE u.usuNome = :usuNome"),
@NamedQuery(name = "Usuario.findByUsuEmail", query = "SELECT u FROM Usuario u WHERE u.usuEmail = :usuEmail"),
@NamedQuery(name = "Usuario.findByUsuFoneCelular", query = "SELECT u FROM Usuario u WHERE u.usuFoneCelular = :usuFoneCelular"),
@NamedQuery(name = "Usuario.findByUsuFonePrincipal", query = "SELECT u FROM Usuario u WHERE u.usuFonePrincipal = :usuFonePrincipal"),
@NamedQuery(name = "Usuario.findByUsuFoneRecado", query = "SELECT u FROM Usuario u WHERE u.usuFoneRecado = :usuFoneRecado"),
@NamedQuery(name = "Usuario.findByUsuDataNascimento", query = "SELECT u FROM Usuario u WHERE u.usuDataNascimento = :usuDataNascimento"),
@NamedQuery(name = "Usuario.findByUsuLogin", query = "SELECT u FROM Usuario u WHERE u.usuLogin = :usuLogin"),
@NamedQuery(name = "Usuario.findByUsuSenha", query = "SELECT u FROM Usuario u WHERE u.usuSenha = :usuSenha"),
@NamedQuery(name = "Usuario.findByUsuStatus", query = "SELECT u FROM Usuario u WHERE u.usuStatus = :usuStatus"),
@NamedQuery(name = "Usuario.findByData", query = "SELECT u FROM Usuario u WHERE u.usuData = :usuData"),
@NamedQuery(name = "Usuario.findByHora", query = "SELECT u FROM Usuario u WHERE u.usuHora = :usuHora"),
@NamedQuery(name = "Usuario.findByUsuIp", query = "SELECT u FROM Usuario u WHERE u.usuIp = :usuIp"),
@NamedQuery(name = "Usuario.findByUsuPerfilAcesso", query = "SELECT u FROM Usuario u WHERE u.usuPerfilAcesso = :usuPerfilAcesso")})
public abstract class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="Usuario_Generator", sequenceName="usuario_sequence", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="Usuario_Generator")
@Column(name = "usu_id", nullable = false)
private Integer usuId;
@Column(name = "usu_rg")
private String usuRg;
@Column(name = "usu_nome")
private String usuNome;
@Column(name = "usu_email")
private String usuEmail;
@Column(name = "usu_fone_celular")
private String usuFoneCelular;
@Column(name = "usu_fone_principal")
private String usuFonePrincipal;
@Column(name = "usu_fone_recado")
private String usuFoneRecado;
@Column(name = "usu_data_nascimento")
private String usuDataNascimento;
@Column(name = "usu_login")
private String usuLogin;
@Column(name = "usu_senha")
private String usuSenha;
@Column(name = "usu_status")
private String usuStatus;
@Column(name = "usu_data")
@Temporal(javax.persistence.TemporalType.DATE)
private Date usuData;
@Column(name = "usu_hora")
@Temporal(javax.persistence.TemporalType.TIME)
private Date usuHora;
@Column(name = "usu_perfil_acesso")
private String usuPerfilAcesso;
@Column(name = "usu_tipo")
private String usuTipo;
@Column(name = "usu_ip")
private String usuIp;
@Column(name = "alu_ra")
private Integer aluRa;
public Usuario() {
}
public Collection<Resumo> getResumos() {
return resumos;
}
public void setResumos(Collection<Resumo> resumos) {
this.resumos = resumos;
}
public Usuario(Integer usuId) {
this.usuId = usuId;
}
public Integer getUsuId() {
return usuId;
}
public void setUsuId(Integer usuId) {
this.usuId = usuId;
}
public String getUsuRg() {
return usuRg;
}
public void setUsuRg(String usuRg) {
this.usuRg = usuRg;
}
public String getUsuNome() {
return usuNome;
}
public void setUsuNome(String usuNome) {
this.usuNome = usuNome;
}
public String getUsuTipo() {
return usuTipo;
}
public void setUsuTipo(String usuTipo) {
this.usuTipo = usuTipo;
}
public String getUsuEmail() {
return usuEmail;
}
public void setUsuEmail(String usuEmail) {
this.usuEmail = usuEmail;
}
public String getUsuFoneCelular() {
return usuFoneCelular;
}
public void setUsuFoneCelular(String usuFoneCelular) {
this.usuFoneCelular = usuFoneCelular;
}
public String getUsuFonePrincipal() {
return usuFonePrincipal;
}
public void setUsuFonePrincipal(String usuFonePrincipal) {
this.usuFonePrincipal = usuFonePrincipal;
}
public String getUsuFoneRecado() {
return usuFoneRecado;
}
public void setUsuFoneRecado(String usuFoneRecado) {
this.usuFoneRecado = usuFoneRecado;
}
public String getUsuDataNascimento() {
return usuDataNascimento;
}
public void setUsuDataNascimento(String usuDataNascimento) {
this.usuDataNascimento = usuDataNascimento;
}
public String getUsuLogin() {
return usuLogin;
}
public void setUsuLogin(String usuLogin) {
this.usuLogin = usuLogin;
}
public String getUsuSenha() {
return usuSenha;
}
public void setUsuSenha(String usuSenha) {
this.usuSenha = usuSenha;
}
public String getUsuStatus() {
return usuStatus;
}
public void setUsuStatus(String usuStatus) {
this.usuStatus = usuStatus;
}
public String getUsuPerfilAcesso() {
return usuPerfilAcesso;
}
public void setUsuPerfilAcesso(String usuPerfilAcesso) {
this.usuPerfilAcesso = usuPerfilAcesso;
}
public String getUsuIp() {
return usuIp;
}
public void setUsuIp(String usuIp) {
this.usuIp = usuIp;
}
public Collection<Partida> getPartida() {
return partida;
}
public void setPartida(Collection<Partida> partida) {
this.partida = partida;
}
public Date getUsuData() {
return usuData;
}
public void setUsuData(Date usuData) {
this.usuData = usuData;
}
public Date getUsuHora() {
return usuHora;
}
public void setUsuHora(Date usuHora) {
this.usuHora = usuHora;
}
public String getUsuCpf() {
return usuCpf;
}
public void setUsuCpf(String usuCpf) {
this.usuCpf = usuCpf;
}
public void setProva(Collection<Prova> prova) {
this.prova = prova;
}
@Override
public int hashCode() {
int hash = 0;
hash += (usuId != null ? usuId.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Usuario)) {
return false;
}
Usuario other = (Usuario) object;
if ((this.usuId == null && other.usuId != null) || (this.usuId != null && !this.usuId.equals(other.usuId))) {
return false;
}
return true;
}
**Classe Aluno**:
package negocio.classes;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
@Entity
//@Table(name = "aluno")
@DiscriminatorValue(value="A")
@NamedQueries({
@NamedQuery(name = "Usuario.findByAluRa", query = "SELECT u FROM Aluno u WHERE u.aluRa = :aluRa")})
//define que a classe Aluno herda as caracteristicas de Usuario
public class Aluno extends Usuario implements Serializable {
@Column(name = "alu_ra", nullable=false)
private Integer aluRa;
public void setaluRa(Integer aluRa) {
this.aluRa = aluRa;
}
public Integer getaluRa() {
return aluRa;
}
}
**Classe Administrador**:
package negocio.classes;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
@Entity
@DiscriminatorValue(value="D")
@NamedQueries({
@NamedQuery(name = "Usuario.findByAdmFuncao", query = "SELECT u FROM Administrador u WHERE u.admFuncao = :admFuncao")})
//define que a classe Administrador herda as caracteristicas de Usuario
public class Administrador extends Usuario implements Serializable {
@Column(name = "adm_funcao", nullable=false)
private String admFuncao;
public void setadmFuncao(String admFuncao) {
this.admFuncao = admFuncao;
}
public String getadmFuncao() {
return admFuncao;
}
}
Classe Professor:
package negocio.classes;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
@Entity
//@Table(name = "professor")
@DiscriminatorValue(value="P")
@NamedQueries({
@NamedQuery(name = "Usuario.findByProTitulacao", query = "SELECT u FROM Professor u WHERE u.proTitulacao = :proTitulacao"),
@NamedQuery(name = "Usuario.findByProAreaAtuacao", query = "SELECT u FROM Professor u WHERE u.proAreaAtuacao = :proAreaAtuacao")})
//define que a classe Professor herda as caracteristicas de Usuario
public class Professor extends Usuario implements Serializable {
@Column(name = "pro_titulacao", nullable=false)
private String proTitulacao;
@Column(name = "pro_area_atuacao", nullable=false)
private String proAreaAtuacao;
public void setproTitulacao(String proTitulacao) {
this.proTitulacao = proTitulacao;
}
public String getproTitulacao() {
return proTitulacao;
}
public void setproAreaAtuacao(String proAreaAtuacao) {
this.proAreaAtuacao = proAreaAtuacao;
}
public String getproAreaAtuacao() {
return proAreaAtuacao;
}
}
Na epoca usando netbeans versao 6.1. Ocorre que migrei o projeto para o netbeans 8.1, precisei mudar o banco pro postgres 9.4 ja que meu instalador em questão não consegui instalar mais no windows 7, tudo corria bem até então sem porens. Tenho uma classe usuário (superclasse) e 3 classes de herança Aluno e Administrado e professor quando tento realizar o login recebo o seguinte erro:
**Internal Exception: org.postgresql.util.PSQLException: ERROR: column "alu_ra" does not exist Dica: Perhaps you meant to reference the column "usuario.usu_rg". Posição: 174 Error Code: 0 Call: SELECT usu_id, usu_tipo, usu_senha, usu_status, usu_rg, usu_data, usu_email, usu_hora, usu_fone_principal, usu_perfil_acesso, usu_data_nascimento, usu_ip, usu_fone_celular, alu_ra, usu_login, usu_fone_recado, usu_nome, pro_titulacao, pro_area_atuacao, adm_funcao FROM usuario WHERE (usu_login = ?) bind => [admin] Query: ReportQuery(negocio.classes.Usuario)**
A classe aluno possui apenas um atribuno alu_ra (justamente o que ele diz não existir em Usuário), e a classe administrador possui o atributo função. Classe professor tem "areaAtuacao, e titulacao".
SERA QUE FALTA ALGO A SER ESPECIFICADO QUE NÃO ME ATENTEI?
ABAIXO AS CLASSES
Minha **classe usuário**:
package negocio.classes;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
/**
*
* @author sperta
*/
@Entity
@Table(name = "usuario")
//determina um relacionamento de Herança com a definicao do tipo de estrategia usada por hierarquia [strategy: (tabela por hierarquia, tabela por classe ou tabela por sublasse).]
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
//@Inheritance(strategy=InheritanceType.JOINED)
//declara qual é o campo da tabela que determina o tipo do objeto , no caso Tipo sera {Administrador= D, Aluno=A ou Professor=P}
@DiscriminatorColumn(name="usu_tipo")
@NamedQueries({@NamedQuery(name = "Usuario.findByUsuId", query = "SELECT u FROM Usuario u WHERE u.usuId = :usuId"),
@NamedQuery(name = "Usuario.findByUsuRg", query = "SELECT u FROM Usuario u WHERE u.usuRg = :usuRg"),
@NamedQuery(name = "Usuario.findByUsuNome", query = "SELECT u FROM Usuario u WHERE u.usuNome = :usuNome"),
@NamedQuery(name = "Usuario.findByUsuEmail", query = "SELECT u FROM Usuario u WHERE u.usuEmail = :usuEmail"),
@NamedQuery(name = "Usuario.findByUsuFoneCelular", query = "SELECT u FROM Usuario u WHERE u.usuFoneCelular = :usuFoneCelular"),
@NamedQuery(name = "Usuario.findByUsuFonePrincipal", query = "SELECT u FROM Usuario u WHERE u.usuFonePrincipal = :usuFonePrincipal"),
@NamedQuery(name = "Usuario.findByUsuFoneRecado", query = "SELECT u FROM Usuario u WHERE u.usuFoneRecado = :usuFoneRecado"),
@NamedQuery(name = "Usuario.findByUsuDataNascimento", query = "SELECT u FROM Usuario u WHERE u.usuDataNascimento = :usuDataNascimento"),
@NamedQuery(name = "Usuario.findByUsuLogin", query = "SELECT u FROM Usuario u WHERE u.usuLogin = :usuLogin"),
@NamedQuery(name = "Usuario.findByUsuSenha", query = "SELECT u FROM Usuario u WHERE u.usuSenha = :usuSenha"),
@NamedQuery(name = "Usuario.findByUsuStatus", query = "SELECT u FROM Usuario u WHERE u.usuStatus = :usuStatus"),
@NamedQuery(name = "Usuario.findByData", query = "SELECT u FROM Usuario u WHERE u.usuData = :usuData"),
@NamedQuery(name = "Usuario.findByHora", query = "SELECT u FROM Usuario u WHERE u.usuHora = :usuHora"),
@NamedQuery(name = "Usuario.findByUsuIp", query = "SELECT u FROM Usuario u WHERE u.usuIp = :usuIp"),
@NamedQuery(name = "Usuario.findByUsuPerfilAcesso", query = "SELECT u FROM Usuario u WHERE u.usuPerfilAcesso = :usuPerfilAcesso")})
public abstract class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="Usuario_Generator", sequenceName="usuario_sequence", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="Usuario_Generator")
@Column(name = "usu_id", nullable = false)
private Integer usuId;
@Column(name = "usu_rg")
private String usuRg;
@Column(name = "usu_nome")
private String usuNome;
@Column(name = "usu_email")
private String usuEmail;
@Column(name = "usu_fone_celular")
private String usuFoneCelular;
@Column(name = "usu_fone_principal")
private String usuFonePrincipal;
@Column(name = "usu_fone_recado")
private String usuFoneRecado;
@Column(name = "usu_data_nascimento")
private String usuDataNascimento;
@Column(name = "usu_login")
private String usuLogin;
@Column(name = "usu_senha")
private String usuSenha;
@Column(name = "usu_status")
private String usuStatus;
@Column(name = "usu_data")
@Temporal(javax.persistence.TemporalType.DATE)
private Date usuData;
@Column(name = "usu_hora")
@Temporal(javax.persistence.TemporalType.TIME)
private Date usuHora;
@Column(name = "usu_perfil_acesso")
private String usuPerfilAcesso;
@Column(name = "usu_tipo")
private String usuTipo;
@Column(name = "usu_ip")
private String usuIp;
@Column(name = "alu_ra")
private Integer aluRa;
public Usuario() {
}
public Collection<Resumo> getResumos() {
return resumos;
}
public void setResumos(Collection<Resumo> resumos) {
this.resumos = resumos;
}
public Usuario(Integer usuId) {
this.usuId = usuId;
}
public Integer getUsuId() {
return usuId;
}
public void setUsuId(Integer usuId) {
this.usuId = usuId;
}
public String getUsuRg() {
return usuRg;
}
public void setUsuRg(String usuRg) {
this.usuRg = usuRg;
}
public String getUsuNome() {
return usuNome;
}
public void setUsuNome(String usuNome) {
this.usuNome = usuNome;
}
public String getUsuTipo() {
return usuTipo;
}
public void setUsuTipo(String usuTipo) {
this.usuTipo = usuTipo;
}
public String getUsuEmail() {
return usuEmail;
}
public void setUsuEmail(String usuEmail) {
this.usuEmail = usuEmail;
}
public String getUsuFoneCelular() {
return usuFoneCelular;
}
public void setUsuFoneCelular(String usuFoneCelular) {
this.usuFoneCelular = usuFoneCelular;
}
public String getUsuFonePrincipal() {
return usuFonePrincipal;
}
public void setUsuFonePrincipal(String usuFonePrincipal) {
this.usuFonePrincipal = usuFonePrincipal;
}
public String getUsuFoneRecado() {
return usuFoneRecado;
}
public void setUsuFoneRecado(String usuFoneRecado) {
this.usuFoneRecado = usuFoneRecado;
}
public String getUsuDataNascimento() {
return usuDataNascimento;
}
public void setUsuDataNascimento(String usuDataNascimento) {
this.usuDataNascimento = usuDataNascimento;
}
public String getUsuLogin() {
return usuLogin;
}
public void setUsuLogin(String usuLogin) {
this.usuLogin = usuLogin;
}
public String getUsuSenha() {
return usuSenha;
}
public void setUsuSenha(String usuSenha) {
this.usuSenha = usuSenha;
}
public String getUsuStatus() {
return usuStatus;
}
public void setUsuStatus(String usuStatus) {
this.usuStatus = usuStatus;
}
public String getUsuPerfilAcesso() {
return usuPerfilAcesso;
}
public void setUsuPerfilAcesso(String usuPerfilAcesso) {
this.usuPerfilAcesso = usuPerfilAcesso;
}
public String getUsuIp() {
return usuIp;
}
public void setUsuIp(String usuIp) {
this.usuIp = usuIp;
}
public Collection<Partida> getPartida() {
return partida;
}
public void setPartida(Collection<Partida> partida) {
this.partida = partida;
}
public Date getUsuData() {
return usuData;
}
public void setUsuData(Date usuData) {
this.usuData = usuData;
}
public Date getUsuHora() {
return usuHora;
}
public void setUsuHora(Date usuHora) {
this.usuHora = usuHora;
}
public String getUsuCpf() {
return usuCpf;
}
public void setUsuCpf(String usuCpf) {
this.usuCpf = usuCpf;
}
public void setProva(Collection<Prova> prova) {
this.prova = prova;
}
@Override
public int hashCode() {
int hash = 0;
hash += (usuId != null ? usuId.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Usuario)) {
return false;
}
Usuario other = (Usuario) object;
if ((this.usuId == null && other.usuId != null) || (this.usuId != null && !this.usuId.equals(other.usuId))) {
return false;
}
return true;
}
**Classe Aluno**:
package negocio.classes;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
@Entity
//@Table(name = "aluno")
@DiscriminatorValue(value="A")
@NamedQueries({
@NamedQuery(name = "Usuario.findByAluRa", query = "SELECT u FROM Aluno u WHERE u.aluRa = :aluRa")})
//define que a classe Aluno herda as caracteristicas de Usuario
public class Aluno extends Usuario implements Serializable {
@Column(name = "alu_ra", nullable=false)
private Integer aluRa;
public void setaluRa(Integer aluRa) {
this.aluRa = aluRa;
}
public Integer getaluRa() {
return aluRa;
}
}
**Classe Administrador**:
package negocio.classes;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
@Entity
@DiscriminatorValue(value="D")
@NamedQueries({
@NamedQuery(name = "Usuario.findByAdmFuncao", query = "SELECT u FROM Administrador u WHERE u.admFuncao = :admFuncao")})
//define que a classe Administrador herda as caracteristicas de Usuario
public class Administrador extends Usuario implements Serializable {
@Column(name = "adm_funcao", nullable=false)
private String admFuncao;
public void setadmFuncao(String admFuncao) {
this.admFuncao = admFuncao;
}
public String getadmFuncao() {
return admFuncao;
}
}
Classe Professor:
package negocio.classes;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
@Entity
//@Table(name = "professor")
@DiscriminatorValue(value="P")
@NamedQueries({
@NamedQuery(name = "Usuario.findByProTitulacao", query = "SELECT u FROM Professor u WHERE u.proTitulacao = :proTitulacao"),
@NamedQuery(name = "Usuario.findByProAreaAtuacao", query = "SELECT u FROM Professor u WHERE u.proAreaAtuacao = :proAreaAtuacao")})
//define que a classe Professor herda as caracteristicas de Usuario
public class Professor extends Usuario implements Serializable {
@Column(name = "pro_titulacao", nullable=false)
private String proTitulacao;
@Column(name = "pro_area_atuacao", nullable=false)
private String proAreaAtuacao;
public void setproTitulacao(String proTitulacao) {
this.proTitulacao = proTitulacao;
}
public String getproTitulacao() {
return proTitulacao;
}
public void setproAreaAtuacao(String proAreaAtuacao) {
this.proAreaAtuacao = proAreaAtuacao;
}
public String getproAreaAtuacao() {
return proAreaAtuacao;
}
}
Roni Cunha
Curtidas 0