Consulta à 2 tabelas à partir de 1 instancia e geração de outra extendida

3 respostas
M

falae pessoal,

estou com o problema aqui já quase há duas semanas e nao consigo solução por isso recorro a vcs..
estou no início, nao tenho mt conhecimento em java.

é seguinte, vê se vcs podem me ajudar, não consigo fazer duas consultas em tabelas diferentes com a mesma classe (usuario), não sei o que ocorre, tenho 4 classes, usuario, usuarioPF, usuarioPJ e outra ainda q é perfil, sendo q estas 3 ultimas sao extendidas de usuario...

e ae tento isso:

public class ControleMeuCadastro extends HttpServlet {
    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, Exception {

        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
         
        try {
            Usuario usuario = (Usuario) request.getAttribute("usuario"); 
            
            UsuarioDAO UsuarioDAO = new UsuarioDAO();
            
            if (usuario.getTipoUsuario() == "PF"){
                UsuarioPF usuarioPF = new UsuarioPF();
                UsuarioDAO.consultaUsuarioPF((UsuarioPF) usuario);   

                request.setAttribute("conta","pf");
                request.getRequestDispatcher("usuario/minha_conta_pf.jsp").forward(request,response);            
            } else {
                UsuarioPJ usuarioPJ = new UsuarioPJ();
                UsuarioDAO.consultaUsuarioPJ((UsuarioPJ) usuario);
                
                request.setAttribute("conta","pj");
                request.getRequestDispatcher("usuario/minha_conta_pf.jsp").forward(request,response);            
            }
        
        } catch (Exception e) {
            request.setAttribute("erro","Houve um erro inesperado!");
            request.getRequestDispatcher("erro.jsp").forward(request,response);
        }
        out.close();
    }

nem está dando erro, mas a página é redirecionada para o erro (exception)!!
eu acho q é algo relacionado às classes e por isso posto pra vcs elas tb, cada uma está em arquivo individual.

package br.modelo;

public class Usuario {
    
    private int id_usuario;
    private String nome;
    ....
    private String tipo_usuario;
    private String perfil;

    
    public Usuario() {
    }
    ....

package br.modelo;

import br.modelo.Usuario;

public class UsuarioPF extends Usuario {

    private int id_usuario_pf;
    private String cpf;
    private String datanasc;
    private String sexo;

    public UsuarioPF() {
    }
    ....


package br.modelo;

import br.modelo.Usuario;

public class UsuarioPJ extends Usuario {

    private int id_usuario_pj;
    private String cnpj;
    private String site;
    private String ramo;

    public UsuarioPJ() {
    }
    ....


package br.modelo;

import br.modelo.Usuario;

public class UsuarioPerfil extends UsuarioPF {

    private int id_perfil;
    ....
    private String data_cad;

    public UsuarioPerfil() {
    }
onde tem:
UsuarioDAO.consultaUsuarioPF((UsuarioPF) usuario);
eu colocava:
UsuarioDAO.consultaUsuarioPF(usuario);
mas indicava erro pq o consultaUsuarioPF é referente à classe usuarioPF e nao à usuario, até ae tudo legal, ae o netbeans pede pra converter para a primeira linha ae ((UsuarioPF) usuario) , sendo esta extendida da usuario nao deveria de ter problema né?!? como consigo fazer com que o usuarioPF passe a ter os valores de usuario?!?

obs. a consulta só pega o id para a consulta e ae armazena o resultado na classe usuario q foi passada.

se vcs puderem me indicar onde está ocorrendo o problema, nao sei se a linha:
Usuario usuario = (Usuario) request.getAttribute("usuario");
está recebendo os valores que existem na instancia q fora criada quando do login. obrigadao ae...

3 Respostas

xandevieira

dae, de cara tem esse problema:

if (usuario.getTipoUsuario() == "PF")

use o equals
if (usuario.getTipoUsuario().equals("PF"))

ja q seu tipo usuario eh String
M

realmente isso já tinha feito, aliás começei com ele e terminei tentando do jeito q está!!! rsrs
mas valeu…

M

olá pessoal,
ninguém ae?!?

será que estou na área errada?

Criado 19 de setembro de 2008
Ultima resposta 19 de set. de 2008
Respostas 3
Participantes 2