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', '
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;
}
}
<%
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.