Javafree
Página Inicial do Fórum > Frameworks, APIs e IDE's

Erro login em superclasse - TopLink 2.1



Criar novo tópico   Responder tópico


  1. alvorac
    Posts:1


    Comment Arrow

    Publicado em: 04/07/2016 15:20:03

    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;
    }
    }



  1. Relacionados