Problema ao inserir dados apartir de um relacionamento PS: Usando Hibernate

0 respostas
devvdevv.interior

Pessoal é o seguinte estou desenvolvendo uma aplicação utilizando hibernate em 3 camadas, tenho os daos, e etc são praticamente cadastros porem os cadastros onde o relacionamento é onetomany, manytoone estão funcionando listam, inserem, alteram, e exclui perfeitamente agora os cadastrados que partem de uma herança eu já tenho problema. será que alguem pode me dar uma pequena luz? irei postar partes do codigo.

outra duvida é em questão a data, como posso inseri-la? formato etc..

na verdade o erro que ocorre é ao cadastrar ele simplesmente não grava os dados.
e me retorna isto.

INFO: Hibernate: select nextval ('hibernate_sequence')
INFO: Hibernate: insert into Pacientes (bairro, cidade, cpf, dataNasc, endereco, estado, filiacao, foto, naturalidade, nome, numCasa, pais, profissao, rg, sexo, telefone, cns, prontuario, status, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
AVISO: SQL Error: 0, SQLState: 22021
GRAVE: Entrada em lote 0 insert into Pacientes (bairro, cidade, cpf, dataNasc, endereco, estado, filiacao, foto, naturalidade, nome, numCasa, pais, profissao, rg, sexo, telefone, cns, prontuario, status, id) values ('Bom Viver ', 'Promissão', '[CPF removido]', NULL, 'Av: Dos oitis', 'SP', NULL, NULL, 'Brasileiro', 'Tiago Sinatra', '27', 'Brasil', 'Estudante', '432.313.211-9', '
PacienteDAO
public class PacienteDAO {
    private Session sessao = null;
    private Transaction transacao = null;

    //Salvar.
    public void salvar (Pacientes pacientes){
        try {
           sessao = HibernateUtil.getSessionFactory().openSession();
           transacao = sessao.beginTransaction();
           sessao.save(pacientes);
           transacao.commit();
        }catch (HibernateException e){
            System.out.println("Não foi possivel cadastrar o paciente. Erro: " + e.getMessage());
        }finally {
            try{
                if (sessao.isOpen())
                    sessao.close();
            }catch (Exception e) {
                System.out.println("Erro ao fechar operação de cadastro. Erro: " + e.getMessage());
            }
        }
    }
    //Atualizar.
    public void atualizar(Pacientes pacientes) {
		try {
			sessao = HibernateUtil.getSessionFactory().openSession();
			transacao = sessao.beginTransaction();
			sessao.update(pacientes);
			transacao.commit();
		} catch (HibernateException e) {
			System.out.println("Não foi possível alterar o paciente. Erro: " +
					e.getMessage());
		} finally {
			try {
				sessao.close();
			} catch (Throwable e) {
				System.out.println("Erro ao fechar operação de atualização. " +
						"Mensagem: " + e.getMessage());
			}
		}
	}
    //Excluir.
    public void excluir(Pacientes pacientes) {
		try {
			sessao = HibernateUtil.getSessionFactory().openSession();
			transacao = sessao.beginTransaction();
			sessao.delete(pacientes);
			transacao.commit();
		} catch (HibernateException e) {
			System.out.println("Não foi possível excluir o paciente. Erro: " +
					e.getMessage());
		} finally {
			try {
				sessao.close();
			} catch (Throwable e) {
				System.out.println("Erro ao fechar operação de exclusão. " +
						"Mensagem: " + e.getMessage());
			}
		}
     }
    //Listar.
    public List <Pacientes> listar() {
        try {
           sessao = HibernateUtil.getSessionFactory().openSession();
           transacao = sessao.beginTransaction();
           List<Pacientes> listaAvaliacoes = sessao.createQuery("from Pacientes").list();
           transacao.commit();
           return listaAvaliacoes;
        }catch (HibernateException e){
            System.out.println("Não foi possivel listar os pacientes. Erro: " + e.getMessage());
            return null;
        }finally {
            try{
                if (sessao.isOpen())
                    sessao.close();
            }catch (Exception e) {
                System.out.println("Erro ao fechar operação de listagem. Erro: " + e.getMessage());
            }
        }
    }
    //Buscar
    public Pacientes buscaPacientes(int valor) {
		Pacientes paciente = null;
		Query consulta = null;

		try {
			sessao = HibernateUtil.getSessionFactory().openSession();
			transacao = sessao.beginTransaction();
			consulta = sessao.createQuery("from Pacientes where id = :parametro");
			consulta.setInteger("parametro", valor);
			paciente = (Pacientes) consulta.uniqueResult();
			transacao.commit();
			return paciente;
		} catch (HibernateException e) {
			System.out.println("Não foi possível buscar paciente. Erro: " +
					e.getMessage());
		} finally {
			try {
				sessao.close();
			} catch (HibernateException e) {
				System.out.println("Erro ao fechar operação de buscar. " +
						"Mensagem: " + e.getMessage());
			}
		}
		return paciente;
	}
}
listarPaciente.jsp
<%
            List <Pacientes> paciente;
            paciente = dao.listar();
            if (paciente != null){
                Iterator i = paciente.iterator();
                Pacientes p ;
                System.out.println("<1>");
          %>
            <table>
          <%
            while (i.hasNext()){
                p = (Pacientes)i.next();
           %>
                <tr>
                                 <td><%	out.println(p.getNome());%>         </td>
                                 <td><% out.println(p.getProntuario());%>   </td>

                    <td>
                                 <a href ="paciente?op=r&cod=<% out.println(p.getProntuario());%>">
                                 <img alt=""  src="Imagens/alterar.png" class="img_alterar"></a>
                    </td>
                    <td>
                                 <a href ="paciente?op=d&cod=<%	out.println(p.getProntuario());%>">
                                 <img alt=""  src="Imagens/excluir.png" class='img_excluir'></a>
                    </td>
               </tr>
               <% }
             }else {
                out.println("Nenhum paciente encontrado");
            }
                %>

ServletPaciente

public class ServletPaciente extends HttpServlet {
   
     @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        doPost(request,response);
    }


    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

        Pacientes paciente = new Pacientes();
        PacienteDAO pDAO = new PacienteDAO();
        RequestDispatcher dispatcher = null;

        char op = request.getParameter("op").charAt(0);

        switch (op) {
                //novo
        	case 'c':
                paciente.setProntuario(Integer.parseInt(request.getParameter("prontuario")));
                paciente.setCns(Integer.parseInt(request.getParameter("cns")));
                paciente.setNome(request.getParameter("nome"));
                paciente.setNaturalidade(request.getParameter("naturalidade"));
               // paciente.setDataNasc(request.getParameter("dataNasc"));
               // paciente.setSexo(request.getParameter("sexo").charAt(0));
                paciente.setRg(request.getParameter("rg"));
                paciente.setCpf(request.getParameter("cpf"));
                paciente.setEndereco(request.getParameter("endereco"));
                paciente.setNumCasa(Integer.parseInt(request.getParameter("numerocasa")));
                paciente.setBairro(request.getParameter("bairro"));
                paciente.setCidade(request.getParameter("cidade"));
                paciente.setEstado(request.getParameter("estado"));
                paciente.setPais(request.getParameter("pais"));
                paciente.setProfissao(request.getParameter("profissao"));
                paciente.setTelefone(request.getParameter("telefone"));
                //paciente.setFoto(request.getParameter("foto"));
                paciente.setStatus(request.getParameter("status"));

                pDAO.salvar(paciente);

                break;

            case 'r':
              paciente = pDAO.buscaPacientes(Integer.parseInt(request.getParameter("cod")));
              request.setAttribute("paciente", paciente);
              dispatcher = request.getRequestDispatcher("cadastroPaciente.jsp?op=u");
              dispatcher.forward(request, response);
              return;

            //atualizar
            case 'u':

                paciente.setProntuario(Integer.parseInt(request.getParameter("pronturario")));
                paciente.setCns(Integer.parseInt(request.getParameter("cns")));
                paciente.setNome(request.getParameter("nome"));
                paciente.setNaturalidade(request.getParameter("naturalidade"));
             //   paciente.setDataNasc(request.getParameter("dataNasc"));
             //   paciente.setSexo(request.getParameter("sexo").charAt(0));
                paciente.setRg(request.getParameter("rg"));
                paciente.setCpf(request.getParameter("cpf"));
                paciente.setEndereco(request.getParameter("endereco"));
                paciente.setNumCasa(Integer.parseInt(request.getParameter("numerocasa")));
                paciente.setBairro(request.getParameter("bairro"));
                paciente.setCidade(request.getParameter("paciente"));
                paciente.setEstado(request.getParameter("estado"));
                paciente.setPais(request.getParameter("pais"));
                paciente.setProfissao(request.getParameter("profissao"));
                paciente.setTelefone(request.getParameter("telefone"));
                //paciente.setFoto(request.getParameter("foto"));
                paciente.setStatus(request.getParameter("status"));

                pDAO.atualizar(paciente);

                break;
            //exluir
            case 'd':
                paciente.setProntuario(Integer.parseInt(request.getParameter("cod")));
                pDAO.excluir(paciente);


        }
        dispatcher = request.getRequestDispatcher("listarPaciente.jsp");
        dispatcher.forward(request, response);
    }
}

desde ja muito muito agradecido a quem poder ajudar.

Criado 10 de junho de 2011
Respostas 0
Participantes 1